ActiveMq

1.點(diǎn)對點(diǎn) Queue類型

在該消息傳遞模型下,一個消息生產(chǎn)者向消息服務(wù)器端一個特定的隊(duì)列發(fā)送消息籽暇,一個消費(fèi)者從該隊(duì)列中讀取消息温治。在這種模型下,消息生產(chǎn)者知道消息消費(fèi)者的隊(duì)列并直接將消息發(fā)送到消息消費(fèi)者的隊(duì)列戒悠。

a).同一個隊(duì)列可以關(guān)聯(lián)多個消息生產(chǎn)者和消息消費(fèi)者熬荆,但一條消息只能夠被一個消息消費(fèi)者接收;如果多個消息消費(fèi)者正在監(jiān)聽隊(duì)列上的消息绸狐,JMS消息服務(wù)器將根據(jù)“先來者優(yōu)先”的原則確定由哪個消息消費(fèi)者接收下一條消息卤恳,消息消費(fèi)者接收到消息不重復(fù)——比如一個消息發(fā)布者發(fā)布了10個消息,兩個接收者A和B寒矿,那么A和B兩個接收者總共會收到10條消息突琳,不重復(fù)——也就是說一個Queue可以有很多消息消費(fèi)者,并且在多個可用的消息消費(fèi)者中負(fù)載均衡符相;

b).消息生產(chǎn)者不需要在消息接收者接收該消息期間處于運(yùn)行狀態(tài)拆融,消息接收者也不需要在發(fā)送消息時處于運(yùn)行狀態(tài);

c).消息接收者接收的所有消息都需要簽收啊终,以通知消息服務(wù)器是否已接受镜豹。如果消息服務(wù)器獲知某條消息已經(jīng)被消息消費(fèi)者接收,那么該消息將從消息服務(wù)器端特定的隊(duì)列中移走蓝牲;否則該條消息將保留在消息服務(wù)器端特定的隊(duì)列中趟脂,一直到消息服務(wù)器獲知該條消息已被消息消費(fèi)者接受為止(即如果在消息生成者發(fā)送消息的時沒有消息消費(fèi)者接收該條消息,那么該消息將保留在消息服務(wù)器端特定的隊(duì)列中搞旭,一直到有消息消費(fèi)者接收該條消息);

d).這種消息傳遞模型是傳統(tǒng)意義上的懶模型或輪詢模型散怖。在此模型中,消息不是自動推動給消息消費(fèi)者的肄渗,而是要由消息消費(fèi)者從隊(duì)列中請求獲得;

2.發(fā)布訂閱(pub/sub)Topic類型

在該消息傳遞模型下,一個消息發(fā)布者向一個特定的消息主題發(fā)布消息咬最,0或多個對此消息主題感興趣的并且處于活動狀態(tài)的消息訂閱者或者建立了持久訂閱的消息訂閱者才可以接收到所發(fā)布的消息翎嫡。在這種模型下,發(fā)布者和訂閱者彼此不知道對方(這種模式好比是匿名公告板)永乌。該模型分Nondurable subscription(非持久訂閱)和durable subscription (持久化訂閱惑申,即消息消費(fèi)者已注冊了特定的主題目標(biāo))2種消息處理方式。

a).與PTP消息傳遞模型不同翅雏,pub/sub消息傳遞模型允許多個主題訂閱者接收同一條消息(即一條消息可以傳遞給多個消息消費(fèi)):比如一個消息發(fā)布者發(fā)布了10個消息圈驼,有兩個建立了持久訂閱(通過Session接口實(shí)現(xiàn)類調(diào)用createDurableSubscriber方法創(chuàng)建的訂閱者)的消息訂閱者A和B或者有兩個在消息發(fā)布者發(fā)布消息時處于活動狀態(tài)的消息訂閱者A和B,那么A和B兩個消息訂閱者各收到10條消息望几,也就是說總共會收到20條消息绩脆;

b).在發(fā)布者和訂閱者之間存在時間依賴性——當(dāng)消息發(fā)布者向特定的消息主題發(fā)布消息時只有對此消息主題(Topic)感興趣的并且處于活動狀態(tài)的訂閱者才會接收到所發(fā)布的消息(除非訂閱者建立了持久的訂閱。訂閱者建立持久訂閱后,消息發(fā)布者在消息訂閱者處于非活動狀態(tài)時發(fā)布的消息將在消息訂閱者再次處于活動狀態(tài)時重新發(fā)布以使再度處于活動狀態(tài)的消息訂閱者接收到該消息靴迫;

c).消息訂閱者接收的所有消息都需要簽收惕味,以通知消息服務(wù)器是否已接受(即JMS一直保留消息,直至某個特定主題對應(yīng)的所有訂閱者都接收到消息為止);

d).pub/sub消息傳遞模型基本上是一個推模型玉锌。在該模型中名挥,消息服務(wù)器會自動將特定主題中的消息廣播出去,消息消費(fèi)者無須通過主動請求或輪詢主題的方法來獲得新的消息主守。

消息重發(fā)

如果消息接收者在處理完一條消息的處理過程后沒有對MOM進(jìn)行應(yīng)答禀倔,則該消息將由MOM重發(fā)。需要注意的是参淫,如果采用非事務(wù)持久化消息加Session.CLIENT_ACKNOWLEDGE應(yīng)答模式救湖,當(dāng)消費(fèi)者在處理完消息后沒有主動調(diào)用Message#acknowledge()方法時,MOM不會主動重發(fā)黄刚,如果這時候MOM宕機(jī)了捎谨,當(dāng)重啟MOM后,將消費(fèi)者機(jī)器也重啟后MOM才會重發(fā)消息憔维,但此時的消息不會有重發(fā)標(biāo)記涛救,因?yàn)镸OM都不記得自己有宕機(jī)過,也不知道這些消息被發(fā)送過业扒。

出現(xiàn)以下情況時检吆,消息會被redelivered

A transacted session is used and rollback() is called.

A transacted session is closed before commit is called.

A session is using CLIENT_ACKNOWLEDGE and Session.recover() is called.

? 消息事務(wù)

是指生產(chǎn)者同時發(fā)送幾條消息到broke時,保證所有的消息都發(fā)送成功程储,如果有一條發(fā)送失敗則回滾(發(fā)送之后一定要session.commit,否則事務(wù)將不會被提交)蹭沛。

生產(chǎn)者->broke

? 同步消息:生產(chǎn)者使用持久(PERSISTENT)傳遞模式發(fā)送消息,send( )方法會一直被阻塞章鲤,直到broke返回ACK確認(rèn)消息摊灭。

異步消息:生產(chǎn)者使用非持久(NON_PERSISTENT)傳遞模式發(fā)送消息,生產(chǎn)者不會阻塞send( )方法败徊。

想要使用異步帚呼,在brokerURL中增加 jms.alwaysSyncSend=false&jms.useAsyncSend=true

如果設(shè)置了alwaysSyncSend=true系統(tǒng)將會忽略useAsyncSend設(shè)置的值都采用同步

1) 當(dāng)alwaysSyncSend=false時,“NON_PERSISTENT”(非持久化)皱蹦、事務(wù)中的消息將使用“異步發(fā)送”

2) 當(dāng)alwaysSyncSend=false時煤杀,

如果指定了useAsyncSend=true,“PERSISTENT”類型的消息使用異步發(fā)送沪哺。 如果useAsyncSend=false沈自,“PERSISTENT”類型的消息使用同步發(fā)送。

總結(jié):默認(rèn)情況(alwaysSyncSend=false,useAsyncSend=false)辜妓,非持久化消息枯途、事務(wù)內(nèi)的消息均采用異步發(fā)送忌怎;對于持久化消息采用同步發(fā)送。

消費(fèi)者確認(rèn)機(jī)制

https://blog.csdn.net/u014401141/article/details/54772847

消息接收的幾種方式

https://blog.csdn.net/songhaifengshuaige/article/details/54177339

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末柔袁,一起剝皮案震驚了整個濱河市呆躲,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌捶索,老刑警劉巖插掂,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異腥例,居然都是意外死亡辅甥,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進(jìn)店門燎竖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來璃弄,“玉大人,你說我怎么就攤上這事构回∠目椋” “怎么了?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵纤掸,是天一觀的道長脐供。 經(jīng)常有香客問我,道長借跪,這世上最難降的妖魔是什么政己? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮掏愁,結(jié)果婚禮上歇由,老公的妹妹穿的比我還像新娘。我一直安慰自己果港,他們只是感情好沦泌,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著辛掠,像睡著了一般赦肃。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上公浪,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天,我揣著相機(jī)與錄音船侧,去河邊找鬼欠气。 笑死,一個胖子當(dāng)著我的面吹牛镜撩,可吹牛的內(nèi)容都是我干的预柒。 我是一名探鬼主播队塘,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼宜鸯!你這毒婦竟也來了憔古?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤淋袖,失蹤者是張志新(化名)和其女友劉穎鸿市,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體即碗,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡焰情,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了剥懒。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片内舟。...
    茶點(diǎn)故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖初橘,靈堂內(nèi)的尸體忽然破棺而出验游,到底是詐尸還是另有隱情,我是刑警寧澤保檐,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布耕蝉,位于F島的核電站,受9級特大地震影響展东,放射性物質(zhì)發(fā)生泄漏赔硫。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一盐肃、第九天 我趴在偏房一處隱蔽的房頂上張望爪膊。 院中可真熱鬧,春花似錦砸王、人聲如沸推盛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽耘成。三九已至,卻和暖如春驹闰,著一層夾襖步出監(jiān)牢的瞬間瘪菌,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工嘹朗, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留师妙,地道東北人。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓屹培,卻偏偏與公主長得像默穴,于是被迫代替她去往敵國和親怔檩。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評論 2 349

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

  • 什么是activeMQ activeMQ是一種開源的蓄诽,實(shí)現(xiàn)了JMS1.1規(guī)范的薛训,面向消息(MOM)的中間件,為應(yīng)用...
    趙鐵柱啊閱讀 1,881評論 1 6
  • 個人專題目錄[http://www.reibang.com/p/140e2a59db2c] 一仑氛、JMS簡介 全稱...
    Java及SpringBoot閱讀 2,079評論 0 10
  • 什么是JMS JMS即Java消息服務(wù)(Java Message Service)應(yīng)用程序接口乙埃,是一個Java平臺...
    閩越布衣閱讀 2,607評論 2 3
  • 大都市生活壓力大,所以消費(fèi)者會選擇廉價的材料來減低裝修的成本调衰,但是在家裝中就要注意幾個絕不能省錢的地方膊爪。請跟隨小編...
    遇見美好1987閱讀 184評論 0 0