Rumah >pangkalan data >Redis >Adakah saya mesti menggunakan baris gilir mesej? Mari kita bincangkan mengapa kita harus menggunakannya
Artikel ini membawakan anda pengetahuan yang berkaitan tentang baris gilir mesej terutamanya sebab kami menggunakan baris gilir mesej dan mengapa kami perlu menggunakan baris gilir mesej Bagi mereka yang berminat, mari lihat.
Mengapa menggunakan baris gilir mesej, ringkasan enam perkataan: decoupling, asynchronous, peak elimination
1) Decoupling
Sistem dalam mod tradisional Gandingan antara mereka terlalu kuat. Cara meletakkannya, sebagai contoh: Sistem A menghantar data ke tiga sistem B, C, dan D melalui panggilan antara muka Jika sistem E disambungkan pada masa hadapan atau sistem B tidak perlu disambungkan, sistem A juga perlu mengubah suai kod, yang sangat menyusahkan.
Jika sistem A menjana sekeping data kritikal, maka ia mesti sentiasa mempertimbangkan jika empat sistem B, C, D dan E tidak berfungsi buat? Adakah mereka semua telah menerima data ini? Jelas sekali, Sistem A banyak digabungkan dengan sistem lain.
Dan jika kita menulis data (mesej) ke dalam baris gilir mesej, sistem yang memerlukan mesej secara langsung menggunakannya daripada baris gilir mesej itu sendiri. Dengan cara ini, Sistem A tidak perlu mempertimbangkan untuk menghantar data kepada siapa, ia juga tidak perlu mengekalkan kod ini, juga tidak perlu mempertimbangkan sama ada sistem lain berjaya dipanggil, tamat masa kegagalan, dll. Bagaimanapun, saya hanya bertanggungjawab untuk pengeluaran, dan saya tidak peduli tentang perkara lain.
2) Asynchronous
Mula-mula kita lihat situasi penyegerakan tradisional Contohnya: Sistem A menerima pengguna Permintaan memerlukan operasi penulisan perpustakaan dan operasi penulisan perpustakaan yang sama perlu dilakukan dalam tiga sistem B, C dan D. Jika A menulis perpustakaan secara tempatan, ia hanya mengambil masa 1ms, manakala tiga sistem B, C dan D masing-masing mengambil 100ms, 200ms dan 300ms. Jumlah kelewatan permintaan terakhir ialah 1 + 100 + 200 + 300 = 601ms, yang sangat mengurangkan pengalaman pengguna.
Jika anda menggunakan baris gilir mesej, maka sistem A hanya perlu menghantar 3 mesej ke baris gilir mesej Jika mengambil masa 5ms, sistem A akan menerima satu daripada Jumlah masa dari permintaan untuk mengembalikan respons kepada pengguna ialah 1 + 5 = 6ms Bagi pengguna, kepuasan pengalaman dimaksimumkan secara langsung.
3) Penghapusan puncak
Jika cache atau baris gilir mesej tidak digunakan, maka sistem secara langsung berdasarkan pangkalan data MySQL , jika terdapat tempoh puncak sedemikian dan sejumlah besar permintaan dituangkan ke dalam MySQL, tidak ada keraguan bahawa sistem akan runtuh secara langsung.
Jika kita menggunakan baris gilir mesej, anggap bahawa MySQL boleh memproses sehingga 1k keping data sesaat, dan 5k keping data dituangkan ke dalam tempoh puncak Walau bagaimanapun, 5k keping data ini dituangkan ke dalam baris gilir mesej. Dengan cara ini, sistem kami boleh menarik permintaan secara perlahan daripada baris gilir mesej mengikut keupayaan pangkalan data, dan tidak melebihi bilangan maksimum permintaan yang boleh dikendalikannya sesaat.
Maksudnya, 5k permintaan masuk dan 1k permintaan keluar dari baris gilir mesej setiap saat dengan mengandaikan tempoh puncak ialah 1 jam, maka mungkin terdapat ratusan ribu atau bahkan jutaan permintaan yang tertunggak dalam. baris gilir mesej dalam tempoh ini. Walau bagaimanapun, tunggakan tempoh puncak jangka pendek ini boleh diterima sepenuhnya, kerana selepas tempoh puncak, tidak akan ada begitu banyak permintaan yang memasuki baris gilir mesej sesaat, tetapi pangkalan data masih akan memprosesnya pada kadar 1k permintaan sesaat. Oleh itu, sebaik sahaja tempoh puncak tamat, sistem akan cepat memproses tunggakan mesej.
Pembelajaran yang disyorkan: "Tutorial Video Redis"
Atas ialah kandungan terperinci Adakah saya mesti menggunakan baris gilir mesej? Mari kita bincangkan mengapa kita harus menggunakannya. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!