ActiveMQ——activemq的詳細說明,queue、topic的區別(精選)

 

 

JMS中定義了兩種消息模型:點對點(point to point, queue)發佈/訂閱(publish/subscribe,topic)。主要區別就是是否能重複消費服務器

點對點:Queue,不可重複消費

消息生產者生產消息發送到queue中,而後消息消費者從queue中取出而且消費消息。
消息被消費之後,queue中再也不有存儲,因此消息消費者不可能消費到已經被消費的消息。
Queue支持存在多個消費者,可是對一個消息而言,只會有一個消費者能夠消費、其它的則不能消費此消息了。
當消費者不存在時,消息會一直保存,直到有消費消費

發佈/訂閱:Topic,能夠重複消費

消息生產者(發佈)將消息發佈到topic中,同時有多個消息消費者(訂閱)消費該消息。
和點對點方式不一樣,發佈到topic的消息會被全部訂閱者消費
當生產者發佈消息,無論是否有消費者。都不會保存消息

 

 

Jms規範裏的兩種message傳輸方式Topic和Queue,二者的對好比下表():異步

 

 

 

  Topic Queue
概要 Publish  Subscribe messaging 發佈訂閱消息 Point-to-Point  點對點
有無狀態 topic數據默認不落地,是無狀態的。

Queue數據默認會在mq服務器上以文件形式保存,好比Active MQ通常保存在$AMQ_HOME\data\kr-store\data下面。也能夠配置成DB存儲。spa

完整性保障 並不保證publisher發佈的每條數據,Subscriber都能接受到。 Queue保證每條數據都能被receiver接收。
消息是否會丟失 通常來講publisher發佈消息到某一個topic時,只有正在監聽該topic地址的sub可以接收到消息;若是沒有sub在監聽,該topic就丟失了。 Sender發送消息到目標Queue,receiver能夠異步接收這個Queue上的消息。Queue上的消息若是暫時沒有receiver來取,也不會丟失。
消息發佈接收策略 一對多的消息發佈接收策略,監聽同一個topic地址的多個sub都能收到publisher發送的消息。Sub接收完通知mq服務器 一對一的消息發佈接收策略,一個sender發送的消息,只能有一個receiver接收。receiver接收完後,通知mq服務器已接收,mq服務器對queue裏的消息採起刪除或其餘操做。
相關文章
相關標籤/搜索