日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ActiveMQ学习笔记(2)——JMS消息模型

發(fā)布時間:2023/12/19 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ActiveMQ学习笔记(2)——JMS消息模型 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

2019獨角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>

1.1 JMS模型簡介

JMS支持兩種消息通信模型:

  • 點對點模型(Point to Point,P2P)

  • 發(fā)布者/訂閱者模型(publish/subscribe, ?pub/sub)

    P2P模型中,Sender把一個消息發(fā)送到Queue中,這個消息只能由一個客戶端消費;一旦消息被消費,其它客戶端就不能從這個Queue中獲取到消息。巧克力糖盒子里只有一塊糖,只有最先打開的那個人能吃到,后來的人就吃不到了。

    Pub/Sub模型中,一個消息主題(Topic)被發(fā)布以后,可以有多個訂閱者收聽,這些訂閱者都可以獲取到消息;前提是,訂閱者訂閱了這個主題,并且只能接受訂閱以后的消息。這就像生活里的期刊訂閱,我們只能收到訂閱以后的期刊,之前的期刊,雜志社是不可能投遞給我們的。

1.2點對點模型

  • 只有一個消費者

? ? ?每條消息只有一個消費者,如果這條消息被消費,那么其它消費者不能接受到此消息。

  • ? 時間無關(guān)性

? ? ? ?消息的消費和時間無關(guān),只要消息被發(fā)送了,在消息過期之前,如果沒有其他消費者消費了這個消息,那么客戶端可以在任何時候來消費這條消息。

  • 消費者必須確認(rèn)

? ? ? ?消費者收到消息之后,必須向Message Provider確認(rèn),否則會被認(rèn)為消息沒有被消費,仍然可以被其他消費者消費。可以設(shè)置自動確認(rèn)。這個特點其實也是保證一條消息只能由一個消費者來消費。

  • 非持久化的消息只發(fā)一次

    非持久化的消息,可能會丟失,因為消息會過期,另外Message Provider可能宕機。

  • 持久化的消息嚴(yán)格發(fā)一次

    消息可以被持久化,比如持久化在文件系統(tǒng)或者數(shù)據(jù)庫中,這樣可以避免Message Provider的異常或者其它異常導(dǎo)致消息丟失。

????????

1.3發(fā)布者/訂閱者模型

  • 每條消息可以有多個訂閱者

  • 訂閱者只能消費它們訂閱topic之后的消息

  • 非持久化訂閱,訂閱者必須保持為活動狀態(tài)才能使用這些消息,如果一個訂閱者A斷開了10分鐘,那么A就會收不到這10分鐘內(nèi)的消息。

  • 持久化訂閱,Message Provider會保存這些消息,即使訂閱者因為網(wǎng)絡(luò)原因斷開了,再重新連接以后,能讓消費這些消息。

  • 是否使用持久化訂閱,需要根據(jù)業(yè)務(wù)場景判斷。

轉(zhuǎn)載于:https://my.oschina.net/xiaoxishan/blog/378752

總結(jié)

以上是生活随笔為你收集整理的ActiveMQ学习笔记(2)——JMS消息模型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。