亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

利用JMS建立消息傳遞系統

2019-11-18 11:35:59
字體:
來源:轉載
供稿:網友

  在開始之前需要說明,為了理解本文,我們希望讀者擁有java編程的相當堅實的基礎。我們將試圖盡可能簡單地解釋什么是JMS,但是在你能夠建立自己的程序并正確地理解它們之前,你需要有一些使用JNDI開發實際應用程序的經驗。

  JMS(Java消息服務)是一個消息交換標準,它答應使用J2EE應用程序組件建立、發送、接收和讀取消息。它假設分布式通訊擁有自由(free)的連接、是可靠的(reliable)和異步的(asynchronous)。

  Exchange(交換)系統

  消息交換反映了程序組件或應用程序之間的一種交互作用。消息交換系統是一種類似于下的系統:一個相似系統的客戶端可以發送和接收任何其它客戶端的消息。每個客戶端都并入系統的代理中,它提供了建立、發送、接收和讀取消息的可能。

  交換系統使得分布式的交互操作成為可能。組件在目的地(Destination)發送消息,收件人也可以在相同的目的地中得到這個消息。發送者和收件人不一定是互相熟悉的。換句話說,它并沒有強迫發送者知道一些收件人的信息,也沒有強迫收件人知道某些發送者的信息。發送者和收件人只需要知道消息的格式以及要到達的目的地。在這種情形下,上述的系統不同于與它緊密相連的一些技術,例如遠程方法調用(RMI),它只要求開發人員了解RMI中的一些方法。

  消息傳遞系統

  消息傳遞系統是一種分布式的系統,是基于系統組件之間的異步消息交換。面向消息的中間件(Message-Oriented Middleware,MOM)就是這種產品,消息傳遞系統是在它的原理上建立的。

  消息傳遞系統應用軟件不會直接地通訊(這與傳統的系統(基于RMI的)形成鮮明的對照),而需要依靠MOM的幫助。假如系統的某個組件希望給另一個組件發送消息,它將把給定的消息發送給MOM,接著MOM把該消息發送給收件人。

利用JMS建立消息傳遞系統

  與傳統的基于RMI構建的系統相比,它有以下優點:

  · 發送消息的應用程序不需要期待回應,可以繼續執行。

  · 沒有強迫發送消息的應用程序和特定消息的收件人在某個特定的時刻是激活的。假如消息的收件人不是激活的,MOM保證收件人一旦激活就立即收到該消息。

  · 系統組件沒有直接地彼此相連。它們被分離開了,這就是在運行時刻能把組件從一個主機傳輸到另一個、卻不會中斷系統可用性的原因。

  消息交換模型:點對點模型和發表-預訂模型

  目前有兩種“基本的”消息交換模型:點對點模型和發表-預訂(pub-sub)模型。點對點模型應用于一個或多個組件(發送者)僅僅給一個組件收件人(接收者)發送消息的情形。這種模型是基于消息隊列概念的:發送者把消息發送到隊列中,接收者從該隊列中讀取消息。在點對點模型中,相同的隊列上可能存在多個接收者,但是MOM只給其中一個傳遞消息。給哪一個傳遞消息依靠于MOM的實現(implementation)。

  發表-預訂模型應用于一個或多個組件(發表者)給一個或多個組件收件人(預訂者)發送消息的情形。這種特定的模型是基于消息主題(message topic)概念的:發表者把消息發送到某個主題中,而該特定主題的預訂者接收這些消息。

  發表-預訂模型看起來更加“優雅”,但是很多發表-預訂模型不能保證消息按照發送的次序傳遞(它與點對點模型相反,點對點隊列實現了FIFO(先進先出)原理)。因此,消息的次序很重要(或者為了同步需要使用消息的頭和屬性部分)的時候,就應該避免采用發表-預訂模型。

  Java消息服務(JMS)是使用面向消息中間件的一套Java API,它答應你的應用程序建立、發送、接收和讀取消息。這組程序集位于J2EE程序包結構樹上的javax.jms程序包中。JMS在很多MOM產品中得到了實現,其中iplanet Message Queue、 IBM MQSeries、PRogress Software SonicMQ、BEA WebLogic Server、Prism Technologies OpenFusion等最有名氣,也存在一些免費的實現。

  JMS同時支持消息交換的兩種“基本的”模型。但是,其說明(specification)并沒有要求廠商同時實現兩種模型,盡管大多數JMS產品實現了點對點和發表-預訂模型。

  JMS應用程序

  JMS應用程序的主要部分是:

  · 產生連接的部分和目的地

  · 連接

  · 對話

  · 產生消息的部分

  · 使用消息的部分

  · 消息

  產生連接的部分(ConnectionFactory)是負責建立JMS連接的對象。每個ConnectionFactory都是QueueConnectionFactory或TopicConnectionFactory的一個副本(copy)。MOM治理器建立特定的對象,并把它與JNDI樹關聯起來,這樣JMS客戶端就能夠使用標準的JNDI查找表得到ConnectionFactory的入口。在點對點的模型中,它使用了javax.jms.QueueConnectionFactory;在發表-預訂模型中,它使用的是javax.jms.TopicConnectionFactory。

  目的地(Destination)——它是隊列或主題,這依靠于我們使用了下面哪種模型:javax.jms.Queue或javax.jms.Topic。

  連接(Connection)——它可能是客戶端和服務應用之間的開放的TCP/IP。它可以被用于建立一個或少量的對話。在你的應用程序能夠接收消息前,你必須調用start()方法。為了暫停發送消息,你需要調用stop()。

  對話(session)——在JMS連接的幫助下建立的對象,被客戶端用作發送和接收消息。

  產生消息的部分(MessageProdUCer)——對話建立的對象,被用于在目的地中發送消息。

  使用消息的部分(MessageConsumer)——對話建立的對象,用于接收消息。為了同步接收消息,需要使用receive()方法。對于異步的情形,使用MessageListener和唯一的方法——onMessage()。在該方法中,在定義的消息到達后應該執行一定的操作。

  消息(Message)——消息本身。JMS消息由三個部分組成:

  · 消息頭

  · 屬性(不是必要的)

  · 消息體(不是必要的)

  本文沒有解釋更多的細節信息,你可以在官方文檔中找到具體的細節。

  什么時候使用EJB 2.0

  請注重下述各項內容:

  在新的EJB 2.0規范中,與JMS的集成是通過建立新的EJB類型——消息驅動Bean(MDB)來實現的。MDB的特性是客戶端不會使用遠程接口(remote interface)與它通訊。其交互操作的唯一途徑是通過消息發送。MDB僅僅是消息監聽程序,是一個實現了javax.ejb.MessageDrivenBean和javax.jms.MessageListener接口的類,沒有任何其它的功能。其中的第一個接口只有兩個方法:setMessageDrivenContext() 和ejbRemove()。第二個接口只有一個方法:onMessage()。這個規范還需要一個不帶參數的ejbCreate()建立方法。客戶端不會直接與MDB通訊;它不會建立MDB。容器(container)自身決定什么時候和需要多少個MDB來處理來自特定目的地的消息。MDB的主要缺陷是它只能從一個目的地接收到消息。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
性欧美暴力猛交69hd| 中文字幕一区二区三区电影| 岛国av午夜精品| 精品国产一区二区三区久久狼5月| 日本视频久久久| 国产精品久久久久久久电影| 日韩成人在线网站| 亚洲第一精品夜夜躁人人躁| 日韩美女视频免费在线观看| 国产亚洲精品成人av久久ww| 久久久久久亚洲精品不卡| 国产欧美久久久久久| 久久久噜久噜久久综合| 久久国产精品首页| 丰满岳妇乱一区二区三区| 日韩av网站大全| 欧美自拍视频在线| 欧美激情国内偷拍| 久久在线免费观看视频| 久久久国产精品视频| 日韩电影中文 亚洲精品乱码| 国产伦精品一区二区三区精品视频| 亚洲第一免费网站| 欧美激情久久久久久| 亚洲人成在线播放| 亚洲人av在线影院| 91精品久久久久久久久不口人| 日韩av在线高清| 亚洲精品动漫久久久久| 粉嫩老牛aⅴ一区二区三区| 久久久av亚洲男天堂| 日韩av中文在线| 国产精品香蕉在线观看| 免费97视频在线精品国自产拍| 91久久精品在线| 欧美一级淫片aaaaaaa视频| 亚洲人成网在线播放| 亚洲欧美日韩图片| 日韩中文字幕视频在线观看| 欧美日韩国产综合视频在线观看中文| 亚洲美女免费精品视频在线观看| 亚洲国产高潮在线观看| 91亚洲国产成人久久精品网站| 久久国产精品久久久久| 亚洲bt天天射| 亚洲欧美另类国产| 午夜精品久久久久久久99热浪潮| 日韩av在线影视| 456亚洲影院| 91免费在线视频| 欧美色图在线视频| 国产精品久久久久久久久粉嫩av| 欧美国产视频一区二区| 亚洲美女在线观看| 日韩av手机在线看| 国产精品视频色| 国产精品色悠悠| 日韩欧美在线免费| 精品亚洲一区二区三区在线观看| 成人a免费视频| 日韩在线观看视频免费| 成人精品在线视频| 欧美成人激情视频免费观看| 国产亚洲在线播放| 国产美女扒开尿口久久久| 久久国产精品久久精品| 久久国产精品99国产精| 欧美成人黑人xx视频免费观看| 亚洲一区二区日本| 国产极品精品在线观看| 亚洲性生活视频在线观看| 黑人巨大精品欧美一区二区三区| 热久久视久久精品18亚洲精品| 日韩欧美在线观看视频| 日韩中文字幕网| 欧美性生交大片免网| 超碰精品一区二区三区乱码| 国产精品视频自在线| 97视频在线免费观看| 中文字幕在线精品| 国产精品入口免费视频一| 亚洲精品国产精品国产自| 欧美成人久久久| 欧美大片va欧美在线播放| 欧美高清视频在线| 91夜夜揉人人捏人人添红杏| 成人a在线观看| 欧美肥婆姓交大片| 国产精品吊钟奶在线| 亚洲网在线观看| 国产精品电影网站| 国产精品第七十二页| 欧美电影免费观看| 欧美重口另类videos人妖| 国产亚洲美女久久| 自拍偷拍亚洲在线| 日韩精品中文在线观看| 国产精品久久不能| 国产视频精品xxxx| 亚洲美女精品成人在线视频| 色综合久久88色综合天天看泰| 国产成人在线精品| 日本电影亚洲天堂| 色悠久久久久综合先锋影音下载| 国产视频久久久久久久| 午夜精品福利电影| 亚洲国产精品推荐| 97成人在线视频| 国产精品久久久久久久久久免费| 91嫩草在线视频| 亚洲欧洲中文天堂| 欧美日韩亚洲系列| 日韩中文字幕免费视频| 午夜精品久久久久久久白皮肤| 精品偷拍一区二区三区在线看| 日韩精品亚洲精品| 国产大片精品免费永久看nba| 俺去亚洲欧洲欧美日韩| 久久久精品久久久| 国产精品69久久久久| 成人a级免费视频| 久久久久久久久久国产精品| 久热精品在线视频| 亚洲精品网址在线观看| 国产丝袜精品视频| 91免费欧美精品| 欧美成人黄色小视频| 国产精品国语对白| 另类天堂视频在线观看| 国产精品成人v| 色av中文字幕一区| 在线精品国产欧美| 91精品久久久久| 日韩在线激情视频| 成人在线免费观看视视频| 欧美巨乳美女视频| 91精品视频免费| 黑丝美女久久久| 国内精品美女av在线播放| 日韩中文在线中文网三级| 中文字幕欧美专区| 久久久免费精品视频| 91av在线播放| 91亚洲va在线va天堂va国| 欧美视频在线看| 欧美资源在线观看| 欧美性猛交丰臀xxxxx网站| 伊人精品在线观看| 亚洲自拍偷拍视频| 91tv亚洲精品香蕉国产一区7ujn| 国产精品一区二区久久精品| 成人免费黄色网| 久久精品视频在线| 久久精品成人欧美大片古装| 国产精品91一区| 精品国产依人香蕉在线精品| 亚洲福利视频网| 国产精品欧美激情在线播放| 国产亚洲精品一区二区| 亚洲人成自拍网站| 亚洲国产中文字幕在线观看| 亚洲精品av在线| 2019中文字幕在线| 亚洲欧美成人精品|