it-swarm-id.com

Antrian Pesan vs Bus Pesan - apa perbedaannya?

Apakah ada? Bagi saya, MB tahu pelanggan dan penerbit dan bertindak sebagai mediator, memberi tahu pelanggan tentang pesan baru (secara efektif model "Push"). MQ, di sisi lain, lebih dari model "tarik", di mana konsumen menarik pesan dari antrian.

Apakah saya benar-benar keluar jalur di sini?

80
Anton Gogolev

Pada umumnya, ketika menyangkut produk perangkat lunak vendor, mereka digunakan secara bergantian, dan tidak memiliki perbedaan yang kuat dalam hal Push atau pull seperti yang Anda gambarkan.

Bus [~ # ~] [~ # ~] vs. [~ # ~] antrian [~ # ~] memang agak konsep warisan, yang paling baru berasal dari sistem seperti IBM MQ dan Tibco Rendezvous. MQ awalnya adalah sistem 1: 1, memang merupakan antrian untuk memisahkan berbagai sistem.

Sebaliknya, Tibco adalah (dijual sebagai) tulang punggung perpesanan, di mana Anda dapat memiliki beberapa penerbit dan pelanggan pada topik yang sama.

Namun keduanya (dan produk yang bersaing baru) dapat bermain di ruang satu sama lain hari ini. Keduanya dapat diatur untuk mengganggu serta polling untuk pesan baru. Keduanya memediasi interaksi antara berbagai sistem.

Namun frase message-queue juga digunakan untuk pompa pesan internal intra-thread dan sejenisnya, dan dalam konteks ini, penggunaannya memang berbeda. Jika Anda memikirkan pompa pesan Windows klasik, ini memang lebih merupakan model tarikan yang Anda gambarkan, tetapi sebenarnya lebih intra-aplikasi daripada antar-aplikasi atau antar-kotak.

38
sdg

Bus Pesan

A Bus Pesan adalah infrastruktur pengiriman pesan untuk memungkinkan berbagai sistem berkomunikasi melalui set antarmuka bersama ( bus pesan ).

enter image description here

Sumber: EIP

Antrian Pesan

Ide dasar dari antrian pesan adalah yang sederhana:

  • Dua (atau lebih) proses dapat bertukar informasi melalui akses ke antrian pesan sistem umum .

  • Proses pengiriman menempatkan melalui beberapa (OS) modul pesan-lewat pesan ke antrian yang dapat dibaca oleh proses lain

Sumber: Dave Marshall

enter image description here

Sumber gambar

Perbedaan

Antrian Pesan berisi [~ # ~] fifo [~ # ~] ( first in first out) aturan sedangkan dalam Bus Pesan tidak.

Kesimpulan

Keduanya [~ # ~] terlihat [~ # ~] seperti melakukan jenis pekerjaan yang sama - menyampaikan pesan di antara keduanya Aplikasi atau Modul atau Antarmuka atau Sistem atau Proses , kecuali perbedaan kecil dari [~ # ~] fifo [~ # ~ ]

92
vijay

Ada beberapa kekaburan garis antara kedua konsep ini, karena beberapa produk sekarang mendukung fitur yang sebelumnya hanya milik satu atau kategori lainnya (misalnya Azure Service Bus mendukung kedua pendekatan).

ANTRE

Antrian pesan menerima pesan dari suatu aplikasi dan membuatnya tersedia untuk satu atau lebih aplikasi lain dengan cara masuk pertama keluar masuk pertama (FIFO). Dalam banyak skenario arsitektur, jika aplikasi A perlu mengirim pembaruan atau perintah ke aplikasi B dan C, maka antrian pesan yang terpisah dapat diatur untuk B dan C. A akan menulis pesan terpisah untuk setiap antrian, dan setiap aplikasi tergantung akan membaca dari nya antrian sendiri (pesan dihapus saat dibekukan). Baik B maupun C tidak perlu tersedia agar A mengirim pembaruan. Setiap antrian pesan tetap ada, jadi jika suatu aplikasi restart, ia akan mulai menarik dari antriannya begitu kembali online. Ini membantu memutus dependensi antara sistem dependen dan dapat memberikan skalabilitas yang lebih besar dan toleransi kesalahan pada aplikasi.

BUS

Bus pesan atau bus layanan menyediakan cara bagi satu (atau lebih) aplikasi untuk mengkomunikasikan pesan ke satu atau lebih aplikasi lain. Mungkin tidak ada jaminan pemesanan masuk pertama keluar pertama, dan pelanggan bus bisa datang dan pergi tanpa sepengetahuan pengirim pesan. Dengan demikian, aplikasi A dapat ditulis untuk mengkomunikasikan pembaruan status ke aplikasi B melalui bus pesan. Kemudian, aplikasi C ditulis yang juga dapat mengambil manfaat dari pembaruan ini. Aplikasi C dapat dikonfigurasi untuk mendengarkan bus pesan dan mengambil tindakan berdasarkan pembaruan ini juga, tanpa memerlukan pembaruan apa pun untuk aplikasi A. Tidak seperti antrian, di mana aplikasi pengirim secara eksplisit menambahkan pesan ke setiap antrian, bus pesan menggunakan terbitan/berlangganan model. Pesan diterbitkan ke bus, dan aplikasi apa pun yang telah berlangganan pesan semacam itu akan menerimanya. Pendekatan ini memungkinkan aplikasi untuk mengikuti prinsip terbuka/tertutup, karena mereka menjadi terbuka untuk perubahan di masa depan sambil tetap tertutup untuk modifikasi tambahan.

SUMBER

16
Jibran

Perbedaan utama yang belum benar-benar disebutkan secara eksplisit dalam jawaban lain adalah bahwa bus pesan memungkinkan untuk beberapa pelanggan sedangkan antrian akan membagikan barang satu per satu ke apa pun yang mendengarkan antrian. Jika Anda ingin beberapa pendengar melihat item yang sama keluar dari antrian, Anda harus mengatasinya sendiri, bus layanan akan melakukan ini di luar kotak untuk Anda.

11
Matt

Cara saya melihatnya adalah bahwa Antrian Pesan menciptakan Bus Pesan . Klien (mis. Node) kemudian dapat mendengarkan bus pesan. Ini terutama berlaku untuk kasus di mana Anda memiliki pesan siaran MQ melalui UDP, dengan kata lain, itu mengirim pesan ke alamat broadcast/multicast tanpa mengetahui atau tidak peduli siapa yang akan mendapatkannya. Untuk deskripsi yang lebih mendalam tentang skenario ini, Anda dapat memeriksa artikel ini .

3
rdalmeida

Bus Layanan adalah istilah yang lebih umum daripada Antrian Pesan.

MQ adalah FIFO sederhana, tetapi ada cara yang lebih canggih untuk mengimplementasikan Bus Layanan, yaitu Hub Peristiwa, yang merupakan "pusat" besar untuk memanipulasi pesan. Selain fungsionalitas yang disediakan oleh MQ, ini memungkinkan untuk menyimpan pesan (dan karenanya menggunakan banyak pelanggan) dll

0
Novellizator