Jadual Kandungan
Kandungan soalan
Penyelesaian
tl;dr
Penerangan masalah
Mesej
Ringkasan
Rumah pembangunan bahagian belakang Golang Menyediakan respons kepada permintaan HTTP selepas menerima permintaan lain

Menyediakan respons kepada permintaan HTTP selepas menerima permintaan lain

Feb 09, 2024 pm 01:06 PM
kehilangan data

收到另一个请求后提供 HTTP 请求的响应

php editor strawberry Semasa membangunkan aplikasi web, kami selalunya perlu mengendalikan permintaan HTTP dan memberikan respons yang sepadan. Apabila kami menerima permintaan, kami perlu menjana respons yang sesuai berdasarkan kandungan dan tujuan permintaan tersebut. Ini mungkin melibatkan pelbagai operasi seperti menanyakan pangkalan data, memproses data borang, memanggil API lain, dsb. Dalam artikel ini, kami akan meneroka cara mengendalikan permintaan HTTP dalam PHP dan memberikan respons yang sepadan untuk memberikan interaksi dan pengalaman pengguna yang lebih baik kepada pengguna. Sama ada anda sedang membina halaman web statik yang ringkas atau aplikasi web yang kompleks, adalah penting untuk memahami cara mengendalikan permintaan HTTP dan menjana respons.

Kandungan soalan

Kes penggunaan saya adalah untuk memberikan respons permintaan HTTP selepas menerima permintaan lain daripada pelayan yang berasingan.

  1. Saya mahu melakukan ini dengan cara yang terbaik sambil mengingati kebolehskalaan.
  2. Kami menggunakan rangka kerja Golang 1.19 dan Gin.
  3. Pelayan akan mempunyai berbilang Pod, jadi saluran tidak akan berfungsi.
  4. Semua permintaan akan tamat masa, permintaan awal akan tamat masa selepas 60 saat.

Penyelesaian semasa saya ialah menggunakan cache kongsi, di mana setiap Pod sentiasa menyemak cache. Saya percaya, saya boleh mengoptimumkan ini dengan menyalurkan, di mana sistem menyemak secara berkala untuk sebarang respons yang lengkap, dan bukannya menyemak cache satu demi satu.

Saya juga ingin mengetahui cara melaksanakannya dalam bahasa pengaturcaraan lain.

PS: Ini adalah pertanyaan berasaskan reka bentuk dan saya mempunyai reputasi untuk berkongsi hadiah di sini jadi bertanya di sini. Jika soalan tidak jelas, sila edit.

Penyelesaian

tl;dr

Penerangan masalah

Jadi, katakan aplikasi pelayan anda dinamakan server_app dan mempunyai 3 pod:

1

2

3

4

5

6

7

+---------------------+

     |  server_app_service |

     +---------------------+

     |  server_app_pod_a   |

     |  server_app_pod_b   |

     |  server_app_pod_c   |

     +---------------------+

Salin selepas log masuk

Perkhidmatan anda menerima permintaan bernama "request a" dan memutuskan untuk menyampaikannya kepada server_app_pod_a. Kini, server_app_pod_a anda memajukan permintaan ke beberapa get laluan dan menunggu sejenis pemberitahuan"request a" 的请求,并决定将其传递给 server_app_pod_a。现在,您的 server_app_pod_a 将请求转发到某个网关,并等待某种通知,以继续处理客户端的响应。正如您所知,无法保证当网关执行 request b 时,服务会再次将其传递给 server_app_pod_a untuk meneruskan memproses respons pelanggan. Seperti yang anda ketahui, tiada jaminan bahawa apabila get laluan melaksanakan permintaan b, perkhidmatan akan menghantarnya kepada server_app_pod_a sekali lagi. Walaupun anda melakukan ini, pengurusan negeri aplikasi akan menjadi tugas yang sukar.

Mesej

Seperti yang anda mungkin perasan, saya tebalkan perkataan "pemberitahuan" dalam perenggan sebelumnya, itu kerana jika anda benar-benar memikirkannya, request“b” kelihatan lebih seperti pemberitahuan dengan beberapa mesej dan bukannya mesej kepada seseorang yang meminta beberapa sumber. Jadi pilihan pertama saya ialah baris gilir mesej seperti kafka (seperti yang anda tahu, terdapat banyak daripada mereka). Ideanya ialah jika anda boleh menentukan algoritma untuk mengira kunci unik permintaan, maka anda boleh dimaklumkan tentang hasilnya dalam pod yang sama. Dengan cara ini, pengurusan keadaan akan menjadi lebih mudah, dan peluang untuk mendapatkan pemberitahuan dalam pod yang sama akan lebih tinggi (sudah tentu ini bergantung pada banyak faktor, seperti keadaan baris gilir mesej). Lihat soalan anda:

  1. Saya mahu melakukan ini dengan cara yang terbaik sambil mengingati kebolehskalaan.

Sudah tentu, anda boleh menggunakan baris gilir mesej ini seperti kafka untuk mendayakan baris gilir mesej dan penskalaan aplikasi serta mengurangkan kehilangan data.

  1. Semua permintaan akan tamat masa, permintaan awal akan tamat masa selepas 60 saat.

Bergantung pada cara anda mengurus tamat masa dalam pangkalan kod anda, menggunakan konteks ialah idea yang baik.

Saya juga ingin mengetahui cara melaksanakannya dalam bahasa pengaturcaraan lain.

Menggunakan baris gilir mesej ialah idea umum yang berfungsi dengan hampir mana-mana bahasa pengaturcaraan, tetapi bergantung pada paradigma pengaturcaraan bahasa dan perpustakaan dan alatan khusus bahasa, mungkin terdapat beberapa cara lain untuk menyelesaikan masalah ini. Contohnya dalam scala 中,如果您使用一些名为 akka 的特定工具(它提供了 actor 模型编程范例),您可以使用所谓的 akka-cluster-sharding untuk menangani masalah ini. Ideanya sangat mudah, kita tahu bahawa mesti ada beberapa jenis penyelia yang mengetahui lokasi dan status sebenar pelanggannya sendiri. Jadi apabila ia menerima beberapa mesej, ia hanya tahu di mana untuk memajukan permintaan dan kepada pelakon mana (kita bercakap tentang pengaturcaraan model pelakon). Dalam erti kata lain, ia boleh digunakan untuk berkongsi keadaan di kalangan peserta yang dilahirkan pada kelompok, sama ada pada mesin yang sama atau tidak. Tetapi sebagai keutamaan peribadi saya tidak akan menggunakan komunikasi khusus bahasa dan akan berpegang pada idea umum kerana ini mungkin menyebabkan masalah pada masa hadapan.

Ringkasan

Penjelasan yang cukup panjang :). Untuk memahami perkara yang saya maksudkan, mari kita jejaki senario yang sama, tetapi dengan model komunikasi yang berbeza:

  1. Pelanggan menghantar permintaan "a" kepada perkhidmatan server_app.
  2. Perkhidmatan memilih salah satu pod (cth. server_app_pod_b) untuk mengendalikan permintaan.
  3. Kemudian pod cuba menentukan beberapa kunci untuk permintaan dan menghantarnya ke get laluan bersama-sama dengan permintaan dan tungguuntuk mesej dengan kunci itu diterbitkan dalam baris gilir.
  4. Gerbang melakukan apa yang sepatutnya dilakukan dan menghantar mesej ke baris gilir mesej menggunakan kekunci .
  5. Pod yang sama serer_app_pod_b menerima mesej dengan kunci, mendapatkan data mesej dan terus memproses permintaan pelanggan.

Mungkin ada cara lain untuk menyelesaikan masalah ini, tetapi ini yang saya mahu. Harap ini membantu!

Atas ialah kandungan terperinci Menyediakan respons kepada permintaan HTTP selepas menerima permintaan lain. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk memulihkan data diskgenius tutorial pemulihan data diskgenius Bagaimana untuk memulihkan data diskgenius tutorial pemulihan data diskgenius May 08, 2024 pm 02:22 PM

Langkah 1: Anda boleh terus memilih partition dalam peta partition cakera keras di atas antara muka utama DiskGenius, klik kanan, dan kemudian pilih item menu [Deleted or Formatted File Recovery] dalam menu pintasan pop timbul (seperti yang ditunjukkan dalam gambar) . Langkah 2: Tetingkap pilihan pemulihan muncul, semak tiga pilihan [Pulihkan Fail Dipadam], [Pemulihan Lengkap] dan [Imbasan Tambahan untuk Jenis Fail Diketahui] (seperti yang ditunjukkan dalam gambar). Langkah 3: Klik butang [Pilih Jenis Fail] di sebelah kanan dan nyatakan jenis fail yang anda perlukan untuk pulihkan dalam tetingkap pop timbul (seperti yang ditunjukkan dalam gambar). Langkah 4: Selepas menetapkan pilihan pemulihan dan mengklik butang [Mula], perisian DiskGenius akan mula mengimbas data dalam cakera keras atau partition Mula-mula, tetingkap imbasan akan muncul (seperti yang ditunjukkan dalam rajah).

Bagaimana untuk memulihkan fail dengan alat partition diskgenius Bagaimana untuk memulihkan fail dengan alat partition diskgenius Bagaimana untuk memulihkan fail dengan alat partition diskgenius Bagaimana untuk memulihkan fail dengan alat partition diskgenius May 08, 2024 pm 02:25 PM

1. Anda boleh terus memilih partition dalam peta partition cakera keras di atas antara muka utama DiskGenius, klik kanan, dan kemudian pilih item menu [Deleted or Formatted File Recovery] dalam menu pintasan pop timbul, seperti yang ditunjukkan dalam rajah di bawah. 2. Tetingkap pilihan pemulihan muncul, semak tiga pilihan [Pulihkan Fail Dipadam], [Pemulihan Lengkap] dan [Imbasan Tambahan untuk Jenis Fail Diketahui], seperti yang ditunjukkan dalam rajah di bawah. 3. Klik butang [Pilih Jenis Fail] di sebelah kanan dan nyatakan jenis fail yang anda perlukan untuk pulihkan dalam tetingkap pop timbul, seperti yang ditunjukkan dalam rajah di bawah. 4. Selepas menetapkan pilihan pemulihan dan mengklik butang [Mula], perisian DiskGenius akan mula mengimbas data dalam cakera keras atau partition Pertama, tetingkap imbasan akan muncul, seperti yang ditunjukkan dalam rajah di bawah. 5. Selepas imbasan selesai,

Berapa lama bateri motherboard tahan? Berapa lama bateri motherboard tahan? May 08, 2024 pm 09:04 PM

Berapa kerap anda perlu menggantikan bateri papan induk komputer Secara umumnya, hayat perkhidmatan bateri papan induk adalah 3-5 tahun, tetapi ia mungkin lebih pendek atau lebih lama. Jika komputer mengalami masalah seperti jam yang tidak tepat dan tetapan sistem yang salah, ia mungkin disebabkan oleh kerosakan pada bateri motherboard. Bateri papan induk perlu diganti setiap 2 hingga 3 tahun. Bateri papan induk digunakan untuk merekodkan masa sistem komputer, iaitu, untuk mengekalkan ketepatan jam sistem Apabila bateri tidak mencukupi, masa akan kembali ke tarikh kilang Apabila ralat CMOS kerap berlaku semasa permulaan dan tarikh dan masa tidak betul, sudah tiba masanya untuk menggantikan bateri. Hayat bateri papan induk adalah sangat lama, biasanya kira-kira 5 tahun. Bateri berada dalam keadaan mengecas apabila komputer dihidupkan, dan BIOS dinyahcas selepas komputer dimatikan untuk mengekalkan maklumat yang berkaitan dalam BIOS (seperti

Bagaimana untuk memulihkan fail yang dipadam dengan Pengimbas Almighty King_Bagaimana untuk memulihkan fail yang dipadam dengan Pengimbas Almighty King Bagaimana untuk memulihkan fail yang dipadam dengan Pengimbas Almighty King_Bagaimana untuk memulihkan fail yang dipadam dengan Pengimbas Almighty King May 07, 2024 am 10:22 AM

1. Mula-mula buka Pengimbas, klik butang di sudut kiri atas untuk memaparkan antara muka peribadi, seperti yang ditunjukkan dalam rajah di bawah. 2. Kemudian klik Tetapan, luncurkan antara muka untuk mencari butang antara muka bantuan, seperti yang ditunjukkan dalam rajah di bawah. 3. Kemudian cari butang bantuan dan klik untuk masuk, seperti yang ditunjukkan dalam rajah di bawah. 4. Kemudian cari [Saya memadamkan dokumen secara tidak sengaja, bagaimana saya memulihkannya? 】, klik untuk masuk, seperti yang ditunjukkan dalam rajah di bawah. 5. Kita dapat melihat bahawa terdapat URL, ikut arahan untuk log masuk ke URL untuk memulihkan (fail yang tidak disegerakkan tidak boleh dipulihkan, pastikan anda menyegerakkan fail penting selepas mengimbas), seperti yang ditunjukkan dalam rajah di bawah. 6. Selepas log masuk, anda boleh melihat fail anda yang disegerakkan dan mencari fail yang anda padam secara tidak sengaja, seperti yang ditunjukkan dalam rajah di bawah.

Cara paling mudah untuk menukar video telefon mudah alih kepada MP4 (petua cepat untuk menukar video telefon mudah alih kepada format MP4) Cara paling mudah untuk menukar video telefon mudah alih kepada MP4 (petua cepat untuk menukar video telefon mudah alih kepada format MP4) May 08, 2024 pm 08:43 PM

Tetapi kadangkala perlu menukarnya kepada format MP4 untuk dimainkan pada peranti lain Orang ramai merakam lebih banyak video telefon mudah alih, dengan populariti telefon pintar. Untuk membantu pengguna menukar video telefon mudah alih kepada format MP4 dengan cepat, artikel ini akan memperkenalkan kaedah paling mudah. 1. Gunakan alat penukaran video profesional untuk menukar video telefon mudah alih kepada format MP4, seperti FFmpeg, dsb., seperti HandBrake. Boleh memenuhi keperluan pengguna yang berbeza, alatan ini menyediakan pilihan penukaran yang kaya. 2. Alat penukaran aplikasi mudah alih seperti iConv juga menyediakan fungsi penukaran video Pengguna hanya perlu mengimport video mudah alih ke dalam aplikasi dan memilih untuk mengeluarkannya dalam format MP4

Bagaimana untuk menetapkan penggera suhu tinggi cakera dengan alat pengesan cakera keras CrystalDiskInfo_Cara menetapkan penggera suhu tinggi cakera dengan alat pengesan cakera keras CrystalDiskInfo Bagaimana untuk menetapkan penggera suhu tinggi cakera dengan alat pengesan cakera keras CrystalDiskInfo_Cara menetapkan penggera suhu tinggi cakera dengan alat pengesan cakera keras CrystalDiskInfo May 07, 2024 am 10:01 AM

Langkah 1: Buka CrystalDiskInfo dan masukkan antara muka utama Selepas masuk, tukar cakera yang anda ingin tetapkan penggera. Langkah 2: Kemudian klik pada lokasi suhu yang sedang dipaparkan. Langkah 3: Selepas mengklik, fungsi tetapan penggera suhu akan muncul. Lalai ialah 60 ℃. Langkah 4: Anda boleh menyeret bar skrol untuk menetapkan suhu, dan kemudian klik butang Guna. Langkah 5: Jika terdapat berbilang cakera, anda boleh mengklik kotak lungsur di atas untuk memilih cakera keras lain untuk tetapan.

Bagaimana untuk menyelesaikan masalah bahawa jadual excel tidak boleh dibuka Bagaimana untuk menyelesaikan masalah bahawa jadual excel tidak boleh dibuka May 08, 2024 pm 08:36 PM

Langkah-langkah untuk menyelesaikan jadual Excel yang tidak boleh dibuka: Periksa sama ada jenis fail adalah betul atau pilih aplikasi lain untuk dibuka, tukar perkaitan fail; Excel).

Cara memulihkan telefon anda kepada tetapan kilang secara paksa (langkah terperinci akan mengajar anda cara memulihkan telefon anda dengan cepat kepada keadaan asalnya) Cara memulihkan telefon anda kepada tetapan kilang secara paksa (langkah terperinci akan mengajar anda cara memulihkan telefon anda dengan cepat kepada keadaan asalnya) May 06, 2024 pm 09:46 PM

Telefon bimbit telah menjadi bahagian penting dalam kehidupan manusia dengan kemajuan teknologi. Seperti konflik perisian, keperluan untuk memulihkan tetapan kilang, sistem ranap, dll. Kadangkala terdapat beberapa masalah dengan telefon, walau bagaimanapun. Artikel ini akan memperkenalkan secara terperinci cara memulihkan telefon secara paksa kepada tetapan kilang. Semak sandaran dan penyimpanan data penting: Pastikan data penting telah disandarkan sebelum melakukan tetapan semula kilang paksa, dan pastikan ketersediaan fail sandaran untuk mengelakkan kehilangan data. 2. Matikan telefon dan masukkan mod pemulihan: Sehingga pilihan mod pemulihan muncul pada skrin, tekan dan tahan kekunci kuasa dan kekunci kelantangan turun pada telefon (model telefon yang berbeza mungkin berbeza-beza). 3. Gunakan kekunci kelantangan untuk menavigasi: Gunakan kekunci kelantangan untuk menatal ke atas dan ke bawah untuk memilih pilihan yang berbeza dalam mod pemulihan. Cari "wip

See all articles