溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

queue和topic消息發(fā)送接收模型是什么

發(fā)布時間:2020-05-29 20:16:00 來源:億速云 閱讀:357 作者:鴿子 欄目:軟件技術(shù)

ActiveMQ是一個非常流行的消息隊(duì)列服務(wù)中間件,基于JMS(Java Message Service)規(guī)范,并且它是一個純Java程序,運(yùn)行環(huán)境只需要Java虛擬機(jī)。

JMS規(guī)范定義了2類消息發(fā)送接收模型:點(diǎn)對點(diǎn)queue,發(fā)布訂閱topic,區(qū)別是能夠重復(fù)消費(fèi)和是否保存。

1,點(diǎn)對點(diǎn)queue:不可重復(fù)消費(fèi),消息被消費(fèi)前一直保存。

生產(chǎn)者發(fā)送消息到queue,一個消費(fèi)者取出并消費(fèi)消息。

消息被消費(fèi)后,queue中不再保存,所有只有一個消費(fèi)者能夠取到消息。

queue支持多個消費(fèi)者存在,但是一個消息只有一個消費(fèi)者可以消費(fèi)。

當(dāng)前沒有消費(fèi)者時,消息一直保存,直到被消費(fèi)者消費(fèi)。

queue和topic消息發(fā)送接收模型是什么

2,發(fā)布訂閱topic:可重復(fù)消費(fèi),發(fā)布給所有訂閱者。

生產(chǎn)者發(fā)布消息到topic中,多個訂閱者收到并消費(fèi)消息。

queue不同,發(fā)布到topic中的消息會被所有訂閱者消費(fèi)。

當(dāng)生產(chǎn)者發(fā)布消息時,不管是否有訂閱者,都不保存消息。

queue和topic消息發(fā)送接收模型是什么

JMS規(guī)范定義的2類消息傳輸模型queue和topic比較:


Queue

Topic

模型

點(diǎn)對點(diǎn)Point-to-Point

發(fā)布訂閱publish/subscribe

有無狀態(tài)

queue消息在消費(fèi)前被一直保存在mq服務(wù)器文件或者配置DB

topic數(shù)據(jù)默認(rèn)不保存,是無狀態(tài)的。

完整性保障

queue保證每條消息都被消費(fèi)者接收到

topic不保證生產(chǎn)者發(fā)布的每條消息都被訂閱者接收到

消息是否會丟失

生產(chǎn)者發(fā)送消息到queue,消費(fèi)者接收到消息。如果沒有消費(fèi)者,將一直保存,不會丟失。

生產(chǎn)者發(fā)布消息到topic時,當(dāng)前的訂閱者都能夠接收到消息。如果當(dāng)前沒有訂閱者,該消息就丟失。

消息發(fā)布接收策略

一對一的消息發(fā)布接收策略,一個生產(chǎn)者發(fā)送的消息只被一個消費(fèi)者接收。mq服務(wù)器收到回復(fù)后,將這個消息刪除。

一對多的消息發(fā)布接收策略,同一個topic的多個訂閱者都能收到生產(chǎn)者發(fā)布的消息。


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI