訊息驅動bean(二)---點對點和發布訂閱模型的對比

來源:互聯網
上載者:User

JMS是Java的Message Service,JMS的用戶端之間可以通過JMS服務進行非同步訊息傳輸。JMS支援兩種訊息模型:Point-to-Point(P2P)和Publish/Subscribe(Pub/Sub),即點對點和發布訂閱模型。

P2P

在P2P模型中,有下列概念:訊息佇列(Queue)、寄件者(Sender)、接收者(Receiver)。每個訊息都被發送到一個特定的隊列,接收者從隊列中擷取訊息。隊列保留著訊息,直到它們被消費或逾時。

l 每個訊息只有一個消費者(Consumer)(即一旦被消費,訊息就不再在訊息佇列中)

l 寄件者和接收者之間在時間上沒有依賴性,也就是說當寄件者發送了訊息之後,不管接收者有沒有正在運行,它不會影響到訊息被發送到隊列。

l 接收者在成功接收訊息之後需向隊列應答成功

如果你希望發送的每個訊息都應該被成功處理的話,那麼你需要P2P模型。

Pub/Sub

在Pub/Sub模型中,有下列概念: 主題(Topic)、發行者(Publisher)、訂閱者(Subscriber)。用戶端將訊息發送到主題。多個發行者將訊息發送到Topic,系統將這些訊息傳遞給多個訂閱者。

l 每個訊息可以有多個消費者

l 發行者和訂閱者之間有時間上的依賴性。針對某個主題(Topic)的訂閱者,它必須建立一個訂閱之後,才能消費發行者的訊息,而且,為了消費訊息,訂閱者必須保持啟動並執行狀態。

當然,為了緩和這種嚴格的時間相關性,JMS允許訂閱者建立一個可持久化的訂閱。這樣,即使訂閱者沒有被啟用(運行),它也能接收到發行者的訊息。

如果你希望發送的訊息可以不被做任何處理、或者被一個消費者處理、或者可以被多個消費者處理的話,那麼可以採用Pub/Sub模型。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.