Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 2516|Jawab: 0

RabbitMQ: Siapa yang akan membuat Queue dan Exchange

[Salin tautan]
Diposting pada 03/05/2023 22.31.59 | | | |
Terjemahan

Pesan adalah bagian mendasar dari setiap sistem terdistribusi. Ini memungkinkan produsen untuk mengirim pesan ke sejumlah konsumen, dan tidak perlu mengetahui informasi apa pun tentang konsumen. Ini sangat membantu untuk komunikasi yang benar-benar asinkron dan decoupling.



Saat Anda menggunakan RabbitMQ, diagram di atas menunjukkan struktur yang sangat mendasar tetapi khas. Produser mengirim pesan ke sakelar. Menurut logika perutean, sakelar menempatkan pesan ke dalam antrean yang terikat ke sakelar. Lebih khusus lagi, jika itu adalah sakelar jenis siaran, salinan pesan ini akan dikirim ke setiap antrean berulang kali. Konsumen kemudian dapat menerima dan memproses pesan.

Asumsi penting agar struktur di atas bekerja dengan sukses bagi produsen dan konsumen adalah bahwa semua komponen RabbitMQ (yaitu antrian, sakelar, dan pengikatan) harus dibuat terlebih dahulu. Konsumen tidak dapat mengirim pesan ke sakelar Jika sakelar tidak ada, konsumen tidak dapat memproses pesan dari antrean yang tidak ada.

Oleh karena itu, tidak sulit untuk memahami bahwa sebelum produsen/konsumen mengirim/menerima pesan, biarkan nilai produsen/konsumen membuat hubungan antrean, sakelar, dan pengikatan. Mari kita lihat kelebihan dan kekurangan dari setiap cara.

1. Membedakan tanggung jawab



Terjemahan gambar (1. Produsen membuat sakelar 2. Konsumen membuat antrean dan mengikat antrean ke sakelar)

Agar produsen dan konsumen dapat sepenuhnya terpisah, idealnya, produsen hanya mengetahui informasi tentang sakelar (bukan antrian), dan konsumen hanya tahu tentang antrian (bukan sakelar). Hubungan pengikatan menunjukkan hubungan antara sakelar dan antrean

Salah satu cara yang mungkin adalah dengan meminta produsen menangani pembuatan sakelar, dan konsumen membuat antrean dan mengikat antrean ke sakelar. Keuntungan dari metode decouplement ini adalah jika konsumen membutuhkan antrian, hanya perlu membuat antrian dan mengikatnya sesuai dengan permintaan, dan produsen tidak perlu mengetahui informasi apa pun tentang antrian. Tetapi ini bukan pemisahan yang cukup: karena konsumen harus mengetahui sakelar untuk mengikatnya.

2. Produsen menciptakan segalanya

Saat produsen berjalan, itu dapat dikonfigurasi untuk membuat semua komponen yang diperlukan (sakelar, antrean, dan pengikatan). Keuntungan dari pendekatan ini adalah tidak ada pesan yang hilang (karena antrean sudah dibuat dan terikat ke sakelar, dan tidak ada konsumen yang perlu memulainya terlebih dahulu).

Namun, ini berarti bahwa produsen harus mengetahui semua antrean yang perlu diikat ke sakelar. Ini adalah cara yang sangat digabungkan. Alasannya adalah bahwa setiap kali antrean baru perlu ditambahkan, produsen harus mengkonfigurasi ulang dan menyebarkan untuk membuat dan mengikat antrean

3. Konsumen menciptakan segalanya

Kebalikannya adalah membiarkan konsumen membuat sakelar, antrean, dan pengikatan yang dibutuhkannya saat berjalan. Seperti pada pendekatan sebelumnya, metode ini menghasilkan kopling karena konsumen harus mengetahui informasi tentang sakelar yang terikat ke antrian. Setiap perubahan pada sakelar (seperti penggantian nama) berarti bahwa semua konsumen harus dikonfigurasi ulang dan disebarkan. Ketika ada antrian besar dan konsumen, kompleksitas ini bisa menjadi penghalang.

4. Tidak ada yang menciptakan apa pun

Pendekatan yang sama sekali berbeda adalah baik produsen maupun konsumen untuk membuat komponen yang diperlukan. Sebagai gantinya, itu dibuat menggunakan antarmuka pengguna plugin admin atau CLI admin sebelumnya. Metode ini didasarkan pada keunggulan berikut:

  • Produsen dan konsumen dapat benar-benar dipisahkan. Produsen hanya tahu pertukaran, dan konsumen hanya tahu antrian.
  • Ini dapat dengan mudah dibuat dan diotomatisasi sebagai bagian dari alur penyebaran
  • Setiap perubahan, seperti antrean baru, dapat ditambahkan tanpa menyentuh penayang, dan konsumen yang ada dan disebarkan


ringkasan

Dalam sistem terdistribusi, pesan asinkron adalah cara yang berguna untuk memisahkan, tetapi untuk menjaganya tetap dipisahkan, perlu untuk mempertahankan strategi yang efektif untuk mempertahankan struktur pesan yang mendasarinya (di RabbitMQ, ini adalah antrean, sakelar, dan pengikatan).

Meskipun penerbit dan layanan konsumen mungkin bertanggung jawab untuk membuat apa yang mereka butuhkan sendiri, mereka dapat mahal dalam hal kehilangan pesan awal, kopling, dan pemeliharaan operasional (dalam hal konfigurasi dan penerapan).

Mungkin cara terbaik untuk menangani konfigurasi sistem perpesanan di tempat yang seharusnya: menulis skrip di luar aplikasi. Ini memastikan bahwa layanan tetap dipisahkan dan sistem antrean dapat berubah secara dinamis sesuai kebutuhan tanpa memengaruhi sejumlah besar layanan yang ada.

Asli:Login hyperlink terlihat.
Bahasa Inggris Asli:Login hyperlink terlihat.





Mantan:Pengantar antarmuka IParsable yang ditambahkan ke .NET 7
Depan:VSTO (IV) Isi gambar ke dalam dokumen Word
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com