java的JMS技術


什么是JMS

  • JMS即Java消息服務(Java Message Service)應用程序接口是一個Java平臺中關于面向消息中間件(MOM)的API薪寓,用于在兩個應用程序之間枣耀,或分布式系統(tǒng)中發(fā)送消息痢虹,進行異步通信使鹅。Java消息服務是一個與具體平臺無關的API捻浦,絕大多數MOM提供商都對JMS提供支持昨登。
  • JMS是一種與廠商無關的 API蹬挤,用來訪問消息收發(fā)系統(tǒng)消息。它類似于JDBC(Java Database Connectivity):這里调鲸,JDBC 是可以用來訪問許多不同關系數據庫的 API盛杰,而 JMS 則提供同樣與廠商無關的訪問方法,以訪問消息收發(fā)服務藐石。許多廠商都支持 JMS即供,包括 IBM 的 MQSeries、BEA的 Weblogic JMS service和 Progress 的 SonicMQ于微,這只是幾個例子逗嫡。 JMS 使您能夠通過消息收發(fā)服務(有時稱為消息中介程序或路由器)從一個 JMS 客戶機向另一個 JMS客戶機發(fā)送消息。消息是 JMS 中的一種類型對象株依,由兩部分組成:報頭和消息主體驱证。報頭由路由信息以及有關該消息的元數據組成。消息主體則攜帶著應用程序的數據或有效負載恋腕。根據有效負載的類型來劃分抹锄,可以將消息分為幾種類型,它們分別攜帶:簡單文本(TextMessage)荠藤、可序列化的對象 (ObjectMessage)伙单、屬性集合 (MapMessage)、字節(jié)流 (BytesMessage)哈肖、原始值流 (StreamMessage)吻育,還有無有效負載的消息 (Message)。

JMS規(guī)范

專業(yè)技術規(guī)范

  • JMS(Java Messaging Service)是Java平臺上有關面向消息中間件(MOM)的技術規(guī)范淤井,它便于消息系統(tǒng)中的Java應用程序進行消息交換,并且通過提供標準的產生布疼、發(fā)送摊趾、接收消息的接口簡化企業(yè)應用的開發(fā),翻譯為Java消息服務游两。

體系架構

  • JMS由以下元素組成严就。
    • JMS提供者provider:連接面向消息中間件的,JMS接口的一個實現器罐。提供者可以是Java平臺的JMS實現梢为,也可以是非Java平臺的面向消息中間件的適配器。
    • JMS客戶:生產或消費基于消息的Java的應用程序或對象轰坊。
    • JMS生產者:創(chuàng)建并發(fā)送消息的JMS客戶铸董。
    • JMS消費者:接收消息的JMS客戶。
    • JMS消息:包括可以在JMS客戶之間傳遞的數據的對象
    • JMS隊列:一個容納那些被發(fā)送的等待閱讀的消息的區(qū)域肴沫。與隊列名字所暗示的意思不同粟害,消息的接受順序并不一定要與消息的發(fā)送順序相同。一旦一個消息被閱讀颤芬,該消息將被從隊列中移走悲幅。
    • JMS主題:一種支持發(fā)送消息給多個訂閱者的機制。

Java消息服務應用程序結構支持兩種模型

點對點或隊列模型

  • 在點對點或隊列模型下站蝠,一個生產者向一個特定的隊列發(fā)布消息汰具,一個消費者從該隊列中讀取消息。這里菱魔,生產者知道消費者的隊列留荔,并直接將消息發(fā)送到消費者的隊列。
  • mark
  • 這種模式被概括為:
    只有一個消費者將獲得消息
    生產者不需要在接收者消費該消息期間處于運行狀態(tài)澜倦,接收者也同樣不需要在消息發(fā)送時處于運行狀態(tài)聚蝶。
    每一個成功處理的消息都由接收者簽收

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

  • 發(fā)布者/訂閱者模型支持向一個特定的消息主題發(fā)布消息。0或多個訂閱者可能對接收來自特定消息主題的消息感興趣藻治。在這種模型下碘勉,發(fā)布者和訂閱者彼此不知道對方。這種模式好比是匿名公告板桩卵。
  • mark
  • 這種模式被概括為:
    • 多個消費者可以獲得消息
    • 在發(fā)布者和訂閱者之間存在時間依賴性验靡。發(fā)布者需要建立一個訂閱(subscription),以便客戶能夠訂閱吸占。訂閱者必須保持持續(xù)的活動狀態(tài)以接收消息晴叨,除非訂閱者建立了持久的訂閱凿宾。在那種情況下矾屯,在訂閱者未連接時發(fā)布的消息將在訂閱者重新連接時重新發(fā)布。

常用的JMS實現

  • 要使用Java消息服務初厚,你必須要有一個JMS提供者件蚕,管理會話和隊列孙技。既有開源的提供者也有專有的提供者。
  • 開源的提供者包括:

Apache ActiveMQ
JBoss 社區(qū)所研發(fā)的 HornetQ
Joram
Coridan的MantaRay
The OpenJMS Group的OpenJMS

  • 專有的提供者包括:

BEA的BEA WebLogic Server JMS
TIBCO Software的EMS
GigaSpaces Technologies的GigaSpaces
Softwired 2006的iBus
IONA Technologies的IONA JMS
SeeBeyond的IQManager(2005年8月被Sun Microsystems并購)
webMethods的JMS+ -
my-channels的Nirvana
Sonic Software的SonicMQ
SwiftMQ的SwiftMQ
IBM的WebSphere MQ

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末排作,一起剝皮案震驚了整個濱河市牵啦,隨后出現的幾起案子,更是在濱河造成了極大的恐慌妄痪,老刑警劉巖哈雏,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異衫生,居然都是意外死亡裳瘪,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進店門罪针,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事徘钥≤罘剩” “怎么了?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵墓阀,是天一觀的道長毡惜。 經常有香客問我,道長斯撮,這世上最難降的妖魔是什么虱黄? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮吮成,結果婚禮上橱乱,老公的妹妹穿的比我還像新娘。我一直安慰自己粱甫,他們只是感情好泳叠,可當我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著茶宵,像睡著了一般危纫。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上乌庶,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天种蝶,我揣著相機與錄音,去河邊找鬼瞒大。 笑死螃征,一個胖子當著我的面吹牛,可吹牛的內容都是我干的透敌。 我是一名探鬼主播盯滚,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼踢械,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了魄藕?” 一聲冷哼從身側響起内列,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎背率,沒想到半個月后话瞧,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡寝姿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年移稳,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片会油。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡个粱,死狀恐怖,靈堂內的尸體忽然破棺而出翻翩,到底是詐尸還是另有隱情都许,我是刑警寧澤,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布嫂冻,位于F島的核電站胶征,受9級特大地震影響,放射性物質發(fā)生泄漏桨仿。R本人自食惡果不足惜睛低,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望服傍。 院中可真熱鬧钱雷,春花似錦、人聲如沸吹零。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽灿椅。三九已至套蒂,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間茫蛹,已是汗流浹背操刀。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留婴洼,地道東北人骨坑。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像窃蹋,于是被迫代替她去往敵國和親卡啰。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理警没,服務發(fā)現匈辱,斷路器,智...
    卡卡羅2017閱讀 134,601評論 18 139
  • 1杀迹、前言 之前我們通過兩篇文章(架構設計:系統(tǒng)間通信(19)——MQ:消息協(xié)議(上)亡脸、架構設計:系統(tǒng)間通信(20)...
    境里婆娑閱讀 1,868評論 0 4
  • 什么是Java消息服務 Java消息服務指的是兩個應用程序之間進行異步通信的API,它為標準消息協(xié)議和消息服務提供...
    雨帶著眼淚滑落閱讀 959評論 1 4
  • ActiveMQ 即時通訊服務 淺析http://www.cnblogs.com/hoojo/p/active_m...
    bboymonk閱讀 1,479評論 0 11