Kapan menggunakan Protokol Antrian Pesan Lanjutan seperti RabbitMQ? [Tutup]

Jawaban:

25

Bayangkan Anda memiliki layanan web yang dapat menerima banyak permintaan per detik. Anda juga memiliki sistem akuntansi yang melakukan banyak hal, salah satunya adalah memproses permintaan yang datang dari layanan web.

Jika Anda membuat antrian antara layanan web dan sistem akuntansi, Anda akan dapat:

  • memiliki kurang kopling antara dua aplikasi, karena sekarang kedua aplikasi harus mengetahui parameter konfigurasi sistem manajemen antrian dan nama antrian. Di sini masalahnya adalah bahwa biasanya Anda lebih cenderung untuk pindah ke server lain beberapa aplikasi daripada memindahkan sistem manajemen antrian
  • jika Anda memiliki banyak permintaan yang datang dalam waktu singkat, sistem akuntansi akan dapat memproses semuanya
  • tetap ada beberapa permintaan jika jumlahnya menjadi sangat besar

Tentu saja, Anda dapat memiliki situasi yang lebih kompleks di mana jumlah aplikasi Anda jauh lebih besar dari dua dan Anda perlu mengelola komunikasi di antara mereka.

Виталий Олегович
sumber
1
1) Bagaimana A digabungkan ke B lebih baik daripada A digabungkan ke C dan C digabungkan ke B?
Charlie
2) Mengapa tidak memasukkan antrian ke dalam sistem akuntansi? Mengapa memperkenalkan bagian kotak hitam bergerak baru yang memerlukan konfigurasi tambahan?
Charlie
2
@Charlie tentang pertanyaan 1, saya telah mengubah jawaban saya. Tentang pertanyaan 2, apa sebenarnya yang Anda maksudkan dengan memasukkan antrian ke dalam sistem akuntansi? Anda ingin menggunakan struktur data antrian? Dalam hal ini Anda akan memiliki lebih banyak kode untuk ditulis untuk bertahan. Anda ingin mensimulasikan antrian menggunakan tabel database? Sekali lagi Anda harus menulis beberapa kode yang baik untuk mengelola tabel itu. Hal lain yang tidak saya pikirkan?
Виталий Олегович
Saya salah bicara untuk 1. Jika antrian ditempatkan di layanan web atau antrian ditempatkan di aplikasi, maka satu kopling tetap. Namun, jika antrian eksternal untuk keduanya, Anda sekarang memiliki dua kali lipat, dan 50% lebih banyak sistem untuk mengelola / titik kegagalan. Jika antrian pihak ketiga dipilih, Anda juga akan memiliki paket baru ini untuk dipelajari dan dikonfigurasikan, dan kemungkinan akan dibebani oleh banyak fitur yang tidak Anda minati, fitur yang ditambahkan untuk menjadikan antrian sebagai tujuan umum dan berguna untuk lebih banyak situasi daripada situasi Anda sendiri.
Charlie
@Charlie, mungkin broker pesan tunggal akan digunakan di antara banyak sistem. Atau akan ada proxy tunggal untuk broker. (Dalam kasus kami, kami menggunakan alat Messaging tunggal yang dapat menangani jutaan pesan per detik untuk semua sistem kami). Ini sebenarnya menciptakan decoupling yang lebih besar karena pesan dihasilkan oleh satu sistem dan sistem yang tertarik dapat menerima pesan itu dan melakukan logika yang sesuai. Satu-satunya kopling adalah antrian itu sendiri.
Michael Brown
16

Selain menyediakan buffer antara layanan web dan layanan backend lainnya, antrian pesan dapat digunakan untuk skenario yang lebih maju. Rabbit MQ (dan produk Antrian Pesan matang lainnya yang juga disebut MOM - Message Oriented Middleware) dapat dikonfigurasi untuk merutekan dan mendistribusikan pesan sesuai dengan aturan yang berbeda.

Misalnya, teknik perutean Pub-Sub memungkinkan satu sumber mengirim pesan dan banyak pendengar menerimanya. Ini biasanya digunakan oleh perangkat lunak perdagangan saham untuk menjaga agar pengguna tetap terbarui.

Juga karena fakta bahwa kebanyakan MOM memiliki SDK untuk berbagai bahasa dan platform, mereka dapat digunakan untuk mengintegrasikan aplikasi yang ditulis pada platform yang berbeda.

Ini hanyalah beberapa dari skenario yang diaktifkan oleh para MOM.

Michael Brown
sumber