


Menyediakan respons kepada permintaan HTTP selepas menerima permintaan lain
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.
- Saya mahu melakukan ini dengan cara yang terbaik sambil mengingati kebolehskalaan.
- Kami menggunakan rangka kerja Golang 1.19 dan Gin.
- Pelayan akan mempunyai berbilang Pod, jadi saluran tidak akan berfungsi.
- 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 |
|
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:
- 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.
- 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:
- Pelanggan menghantar permintaan "a" kepada perkhidmatan
server_app
. - Perkhidmatan memilih salah satu pod (cth.
server_app_pod_b
) untuk mengendalikan permintaan. - 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.
- Gerbang melakukan apa yang sepatutnya dilakukan dan menghantar mesej ke baris gilir mesej menggunakan kekunci .
- 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!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

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).

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 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

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.

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

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.

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).

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
