訊息佇列 點對點與發布訂閱區別

2021-09-27 10:01:45 字數 563 閱讀 1211

jms規範目前支援兩種訊息模型:點對點(point to point, queue)和發布/訂閱(publish/subscribe,topic)

訊息生產者生產訊息傳送到queue中,然後訊息消費者從queue中取出並且消費訊息。這裡要注意:

訊息被消費以後,queue中不再有儲存,所以訊息消費者不可能消費到已經被消費的訊息。

queue支援存在多個消費者,但是對乙個訊息而言,只會有乙個消費者可以消費。

生產者傳送一條訊息到queue,只有乙個消費者能收到。

訊息生產者(發布)將訊息發布到topic中,同時有多個訊息消費者(訂閱)消費該訊息。和點對點方式不同,發布到topic的訊息會被所有有效訂閱者消費,如果消費者是之後再訂閱,則之前的訊息是不能被消費的。

發布者傳送到topic的訊息,只有訂閱了topic的訂閱者才會收到訊息。

訊息佇列和發布訂閱

事實上,發布訂閱真的與開發語言沒有什麼關係,所以出現了另一種產品,訊息中介軟體,或者叫訊息佇列,它是以發布訂閱模式為理論基礎的,同時很多訊息佇列產品又有自己的特色,這種獨立的訊息佇列我們為rabbitmq為例子。解耦,發布者與訂閱者可以互不關心 非同步處理,整合元件有的是同步的,需要加 async註...

mysql訊息訂閱與發布 發布 訂閱配置

public ibus bus public void handle mymessage message bus.publish e e.someproperty xyz 公共汽車 屬性將自動由基礎設施。這就是所謂的 依賴注入 所有開發完成了nservicebus利用這些模式。技術作為nservic...

Redis訊息發布與訂閱

1.publish channel message 定義乙個channel並在其上發布訊息,例如 這裡定義了news,並在news上發布了hello訊息,返回值是1,說明有乙個訂閱者收到了發布的訊息,如果有多個訂閱者,會將顯示所有訂閱者的數量。2.subscribe channel 訂閱乙個chan...