消息隊列中點對點與發(fā)布訂閱區(qū)別

1.JMS定義

JMS規(guī)范支持兩種消息模型:點對點(point to point绵疲, queue)和發(fā)布/訂閱(publish/subscribe,topic)狼犯。

1. 點對點
生產(chǎn)者生產(chǎn)消息發(fā)送到queue中汰聋,然后消費者從queue中取出并且消費消息俗冻。這里要注意:
消息被消費以后,queue中不再有存儲,所以消費者不可能消費到已經(jīng)被消費的消息。
Queue支持存在多個消費者溜徙,但是對一個消息而言,只會有一個消費者可以消費犀填。
2. 發(fā)布/訂閱
生產(chǎn)者將消息發(fā)布到topic中蠢壹,同時有多個消費者訂閱該消息。和點對點方式不同九巡,發(fā)布到topic的消息會被所有訂閱者消費图贸。

2. 二者分析與區(qū)別

2.1 點對點模式

[生產(chǎn)者發(fā)送一條消息到queue,只有一個消費者能收到]

2.2 發(fā)布訂閱模式

發(fā)布者發(fā)布到topic的消息冕广,所有訂閱了此topic的訂閱者都會收到

小結(jié)
queue實現(xiàn)了負載均衡疏日,一條消息只能被一個消費者接收,當沒有消費者可用時撒汉,這個消息會被保存直到有一個可用的消費者沟优,一個queue可以有很多消費者,他們之間實現(xiàn)了負載均衡睬辐, 所以Queue實現(xiàn)了一個可靠的負載均衡净神。 topic實現(xiàn)了發(fā)布和訂閱,當你發(fā)布一個消息溉委,所有訂閱這個topic的服務(wù)都能得到這個消息,所以從1到N個訂閱者都能得到一個消息的拷貝

疑問
發(fā)布訂閱模式下爱榕,能否實現(xiàn)訂閱者負載均衡消費呢瓣喊?當發(fā)布者消息量很大時,顯然單個訂閱者的處理能力是不足的黔酥。實際上現(xiàn)實場景中是多個訂閱者節(jié)點組成一個訂閱組負載均衡消費topic消息即分組訂閱藻三,
這樣訂閱者很容易實現(xiàn)消費能力線性擴展。

image.png

3. 流行消息隊列的消息模型比較

傳統(tǒng)企業(yè)型消息隊列ActiveMQ遵循了JMS規(guī)范跪者,實現(xiàn)了點對點和發(fā)布訂閱模型棵帽,但其他流行的消息隊列RabbitMQ、Kafka并沒有遵循老態(tài)龍鐘的JMS規(guī)范渣玲,是通過什么方式實現(xiàn)消費負載均衡逗概、多訂閱呢?

3.1 RabbitMQ

RabbitMQ實現(xiàn)了AQMP協(xié)議忘衍,AQMP協(xié)議定義了消息路由規(guī)則和方式逾苫。生產(chǎn)端通過路由規(guī)則發(fā)送消息到不同queue卿城,消費端根據(jù)queue名稱消費消息。此外RabbitMQ是向消費端推送消息铅搓,訂閱關(guān)系和消費狀態(tài)保存在服務(wù)端瑟押。


image.png

生產(chǎn)端發(fā)送一條消息通過路由投遞到Queue,只有一個消費者能消費到星掰。


image.png

當RabbitMQ需要支持多訂閱時多望,發(fā)布者發(fā)送的消息通過路由同時寫到多個Queue,不同訂閱組消費此消息氢烘。
RabbitMQ既支持內(nèi)存隊列也支持持久化隊列怀偷,消費端為推模型,消費狀態(tài)和訂閱關(guān)系由服務(wù)端負責維護威始,消息消費完后立即刪除枢纠,不保留歷史消息。所以支持多訂閱時黎棠,消息會多個拷貝晋渺。

3.2 Kafka

image.png

Kafka只支持消息持久化,消費端為拉模型脓斩,消費狀態(tài)和訂閱關(guān)系由客戶端端負責維護木西,消息消費完后不會立即刪除,會保留歷史消息随静。因此支持多訂閱時八千,消息只會存儲一份就可以了。

同一個訂閱組會消費topic所有消息燎猛,每條消息只會被同一個訂閱組的一個消費節(jié)點消費恋捆,同一個訂閱組內(nèi)不同消費節(jié)點會消費不同消息

轉(zhuǎn)自:https://blog.csdn.net/lizhitao/article/details/47723105

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市重绷,隨后出現(xiàn)的幾起案子沸停,更是在濱河造成了極大的恐慌,老刑警劉巖昭卓,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件愤钾,死亡現(xiàn)場離奇詭異,居然都是意外死亡候醒,警方通過查閱死者的電腦和手機能颁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來倒淫,“玉大人伙菊,你說我怎么就攤上這事。” “怎么了占业?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵绒怨,是天一觀的道長。 經(jīng)常有香客問我谦疾,道長南蹂,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任念恍,我火速辦了婚禮六剥,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘峰伙。我一直安慰自己疗疟,他們只是感情好,可當我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布瞳氓。 她就那樣靜靜地躺著策彤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪匣摘。 梳的紋絲不亂的頭發(fā)上店诗,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天,我揣著相機與錄音音榜,去河邊找鬼庞瘸。 笑死,一個胖子當著我的面吹牛赠叼,可吹牛的內(nèi)容都是我干的擦囊。 我是一名探鬼主播,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼嘴办,長吁一口氣:“原來是場噩夢啊……” “哼瞬场!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起涧郊,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤泌类,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后底燎,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡弹砚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年双仍,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片桌吃。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡朱沃,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情逗物,我是刑警寧澤搬卒,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站翎卓,受9級特大地震影響契邀,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜失暴,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一坯门、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧逗扒,春花似錦古戴、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至黍檩,卻和暖如春叉袍,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背建炫。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工畦韭, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人肛跌。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓艺配,卻偏偏與公主長得像,于是被迫代替她去往敵國和親衍慎。 傳聞我的和親對象是個殘疾皇子转唉,可洞房花燭夜當晚...
    茶點故事閱讀 44,700評論 2 354

推薦閱讀更多精彩內(nèi)容