JMS小記

前幾天組長面試別人的時候問了些關于JMS的問題法挨,后來順便問了我一下因妇。hmmm沒接觸過這技術當然是一臉懵逼,所以索性花了點時間上網(wǎng)搜了一下相關的內(nèi)容然后自己總結(jié)一下。

什么是JMS骚灸?

JMS是Java消息中間件服務的應用程序接口,用于Java平臺中應用程序之間的異步通信慌植。到這里想提一下MQ甚牲,MQ是應用程序?qū)贸绦蛑g的通信方法,是遵循AMQP協(xié)議的具體實現(xiàn)和產(chǎn)物涤浇。

如何消費JMS產(chǎn)生的消息鳖藕?

JMS中消息的產(chǎn)生和消費是異步的。但是消息被消費的方式有2種只锭。

1.同步的消息消費方式著恩。

消息接收者調(diào)用receive方法接收信息,在接到消息之前(或者超時前)一直阻塞。

2.異步的消息消費方式喉誊。

消息接收者注冊消息監(jiān)聽器邀摆,消息到達后調(diào)用監(jiān)聽器的onMessage方法。

消息消費模型

1.點對點模型

每個消息只有一個接收者伍茄,發(fā)送者和接收者沒有依賴關系栋盹。接收者接收成功有反饋信息。

如果希望每個消息都被成功處理應該使用該模型敷矫。

2.發(fā)布/訂閱模型

每個消息可以有多個接收者例获,有時間依賴,必須訂閱之后才能消費消息曹仗。

因此訂閱者必須要一直處于在線狀態(tài)榨汤。

允許創(chuàng)建持久化訂閱,使沒有激活的訂閱者也能收到消息怎茫。

JMS對象模型

一般一個JMS對象模型包括以下幾個元素收壕。

1.ConnectionFactory?

用于創(chuàng)建發(fā)送端和接收端之間連接的工廠類。針對不同的消息模型有 QueueConnectionFactory和TopicConnectionFactory轨蛤,也可以在Tomcat的context.xml中配置然后通過JNDI來查找蜜宪。

PS:JNDI是一個標準規(guī)范,類似JDBC祥山,JMS等規(guī)范圃验,為開發(fā)人員提供了查找和訪問各種命名和目錄服務的通用、統(tǒng)一接口缝呕。

2.Connection

發(fā)送端和接收端之間建立的連接损谦,根據(jù)消息模型不同可以使用QueueConnection或者TopicConnection。用于創(chuàng)建Session岳颇。

3.Session

操作消息的接口÷妫可以通過session創(chuàng)建生產(chǎn)者话侧、消費者、消息等等闯参。提供事務功能用于發(fā)送/接收多個消息瞻鹏。也分QueueSession和TopicSession。

4.Sender

由Sessoin創(chuàng)建鹿寨,將消息發(fā)送到destination新博。根據(jù)消息模型不同可以使用QueueSender或者TopicPublisher。

5.Receiver

由Session創(chuàng)建脚草,接收Destination發(fā)來的信息赫悄。根據(jù)消息模型不同可以使用QueueReceiver或者TopicSubscriber。可以通session的createDurableSubscriber方法來創(chuàng)建持久化的訂閱者埂淮。

6.Destinatoin

消息生產(chǎn)者的發(fā)送目標或者消息接受者的消息來源姑隅。 實際上就是Queue、Topic的對象倔撞。

7.MessageListener

消息監(jiān)聽器讲仰。如果注冊監(jiān)聽器,一旦消息達到就自動調(diào)用onMessage方法痪蝇。


JMS提供五種不同的消息正文格式用于消息的發(fā)送以及接收鄙陡。

1.StreamMessage -> 數(shù)據(jù)流消息

2.MapMessage -> 鍵值對消息

3.TextMessage -> 字符串消息

4.ObjectMessage -> 序列化對象消息

5.BytesMessage ->未解釋字節(jié)數(shù)據(jù)流消息

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市躏啰,隨后出現(xiàn)的幾起案子趁矾,更是在濱河造成了極大的恐慌,老刑警劉巖丙唧,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件愈魏,死亡現(xiàn)場離奇詭異,居然都是意外死亡想际,警方通過查閱死者的電腦和手機培漏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來胡本,“玉大人牌柄,你說我怎么就攤上這事〔喔Γ” “怎么了珊佣?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長披粟。 經(jīng)常有香客問我咒锻,道長,這世上最難降的妖魔是什么守屉? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任惑艇,我火速辦了婚禮,結(jié)果婚禮上拇泛,老公的妹妹穿的比我還像新娘滨巴。我一直安慰自己,他們只是感情好俺叭,可當我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布恭取。 她就那樣靜靜地躺著,像睡著了一般熄守。 火紅的嫁衣襯著肌膚如雪蜈垮。 梳的紋絲不亂的頭發(fā)上耗跛,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天,我揣著相機與錄音窃款,去河邊找鬼课兄。 笑死,一個胖子當著我的面吹牛晨继,可吹牛的內(nèi)容都是我干的烟阐。 我是一名探鬼主播,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼紊扬,長吁一口氣:“原來是場噩夢啊……” “哼蜒茄!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起餐屎,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤檀葛,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后腹缩,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體屿聋,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年藏鹊,在試婚紗的時候發(fā)現(xiàn)自己被綠了润讥。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡盘寡,死狀恐怖楚殿,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情竿痰,我是刑警寧澤脆粥,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站影涉,受9級特大地震影響变隔,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蟹倾,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一弟胀、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧喊式,春花似錦、人聲如沸萧朝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽检柬。三九已至献联,卻和暖如春竖配,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背里逆。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工进胯, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人原押。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓胁镐,卻偏偏與公主長得像,于是被迫代替她去往敵國和親诸衔。 傳聞我的和親對象是個殘疾皇子盯漂,可洞房花燭夜當晚...
    茶點故事閱讀 44,933評論 2 355