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

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

JMS

2019-11-14 15:23:19
字體:
來源:轉載
供稿:網友
JMS即java消息服務(Java Message Service)應用程序接口是一個Java平臺中關于面向消息中間件(MOM)的API,用于在兩個應用程序之間,或分布式系統中發送消息,進行異步通信。Java消息服務是一個與具體平臺無關的API,絕大多數MOM提供商都對JMS提供支持。
JMS是一種與廠商無關的 API,用來訪問消息收發系統消息。它類似于JDBC(Java Database Connectivity):這里,JDBC 是可以用來訪問許多不同關系數據庫的 API,而 JMS 則提供同樣與廠商無關的訪問方法,以訪問消息收發服務。許多廠商都支持 JMS,包括 IBM 的 MQSeries、BEA的 Weblogic JMS service和 PRogress 的 SonicMQ,這只是幾個例子。 JMS 使您能夠通過消息收發服務(有時稱為消息中介程序或路由器)從一個 JMS 客戶機向另一個 JMS客戶機發送消息。消息是 JMS 中的一種類型對象,由兩部分組成:報頭和消息主體。報頭由路由信息以及有關該消息的元數據組成。消息主體則攜帶著應用程序的數據或有效負載。根據有效負載 的類型來劃分,可以將消息分為幾種類型,它們分別攜帶:簡單文本(TextMessage)、可序列化的對象 (ObjectMessage)、屬性集合 (MapMessage)、字節流 (BytesMessage)、原始值流 (StreamMessage),還有無有效負載的消息 (Message)。
中文名
JMS
外文名
Java Messaging Service
性    質
API
平臺
Java平臺
 

目錄

  1. 1 專業技術規范
  2. 2 歷史
  3. 3 體系架構
  1. 4 對象模型
  2. 5 模型
  3. 6 傳遞方式
  1. 7 應用程序
  2. 8 提供者

專業技術規范 編輯

JMS(Java Messaging Service)是Java平臺上有關面向消息中間件(MOM)的技術規范,它便于消息系統中的Java應用程序進行消息交換,并且通過提供標準的產生、發送、接收消息的接口簡化企業應用的開發,翻譯為Java消息服務。

歷史 編輯

Java消息服務是一個在 Java標準化組織(JCP)內開發的標準(代號JSR 914)。2001年6月25日,Java消息服務發布JMS 1.0.2b,2002年3月18日Java消息服務發布 1.1,統一了消息域。

體系架構 編輯

JMS由以下元素組成。[1] 
JMS提供者
連接面向消息中間件的,JMS接口的一個實現。提供者可以是Java平臺的JMS實現,也可以是非Java平臺的面向消息中間件的適配器。
JMS客戶
生產或消費基于消息的Java的應用程序或對象。
JMS生產者
創建并發送消息的JMS客戶。
JMS消費者
接收消息的JMS客戶。
JMS消息
包括可以在JMS客戶之間傳遞的數據的對象
JMS隊列
一個容納那些被發送的等待閱讀的消息的區域。與隊列名字所暗示的意思不同,消息的接受順序并不一定要與消息的發送順序相同。一旦一個消息被閱讀,該消息將被從隊列中移走。
JMS主題
一種支持發送消息給多個訂閱者的機制。

對象模型 編輯

JMS對象模型包含如下幾個要素:[2] 
1)連接工廠。連接工廠(ConnectionFactory)是由管理員創建,并綁定到JNDI樹中??蛻舳耸褂肑NDI查找連接工廠,然后利用連接工廠創建一個JMS連接。
2)JMS連接。JMS連接(Connection)表示JMS客戶端和服務器端之間的一個活動的連接,是由客戶端通過調用連接工廠的方法建立的。
3)JMS會話。JMS會話(session)表示JMS客戶與JMS服務器之間的會話狀態。JMS會話建立在JMS連接上,表示客戶與服務器之間的一個會話線程。
4)JMS目的。JMS目的(Destination),又稱為消息隊列,是實際的消息源。
5)JMS生產者和消費者。生產者(Message Producer)和消費者(Message Consumer)對象由Session對象創建,用于發送和接收消息。
6)JMS消息通常有兩種類型:
① 點對點(Point-to-Point)。在點對點的消息系統中,消息分發給一個單獨的使用者。點對點消息往往與隊列(javax.jms.Queue)相關聯。
② 發布/訂閱(Publish/Subscribe)。發布/訂閱消息系統支持一個事件驅動模型,消息生產者和消費者都參與消息的傳遞。生產者發布事件,而使用者訂閱感興趣的事件,并使用事件。該類型消息一般與特定的主題(javax.jms.Topic)關聯。

模型 編輯

Java消息服務應用程序結構支持兩種模型:
點對點或隊列模型
發布者/訂閱者模型
在點對點或隊列模型下,一個生產者向一個特定的隊列發布消息,一個消費者從該隊列中讀取消息。這里,生產者知道消費者的隊列,并直接將消息發送到消費者的隊列。這種模式被概括為:
只有一個消費者將獲得消息
生產者不需要在接收者消費該消息期間處于運行狀態,接收者也同樣不需要在消息發送時處于運行狀態。
每一個成功處理的消息都由接收者簽收
發布者/訂閱者模型支持向一個特定的消息主題發布消息。0或多個訂閱者可能對接收來自特定消息主題的消息感興趣。在這種模型下,發布者和訂閱者彼此不知道對方。這種模式好比是匿名公告板。這種模式被概括為:
多個消費者可以獲得消息
在發布者和訂閱者之間存在時間依賴性。發布者需要建立一個訂閱(subscription),以便客戶能夠訂閱。訂閱者必須保持持續的活動狀態以接收消息,除非訂閱者建立了持久的訂閱。在那種情況下,在訂閱者未連接時發布的消息將在訂閱者重新連接時重新發布。
使用Java語言,JMS提供了將應用與提供數據的傳輸層相分離的方式。同一組Java類可以通過JNDI中關于提供者的信息,連接不同的JMS提供者。這一組類首先使用一個連接工廠以連接到隊列或主題,然后發送或發布消息。在接收端,客戶接收或訂閱這些消息。

傳遞方式 編輯

JMS有兩種傳遞消息的方式。標記為NON_PERSISTENT的消息最多投遞一次,而標記為 PERSISTENT的消息將使用暫存后再轉送的機理投遞。如果一個JMS服務離線,那么持久性消息不會丟失但是得等到這個服務恢復聯機時才會被傳遞。所 以默認的消息傳遞方式是非持久性的。即使使用非持久性消息可能降低內務和需要的存儲器,并且這種傳遞方式只有當你不需要接收所有的消息時才使用。
雖然JMS規范并不需要JMS供應商實現消息的優先級路線,但是它需要遞送加快的消息優先于普通級別的消息。JMS 定義了從0到9的優先級路線級別,0是最低的優先級而9則是最高的。更特殊的是0到4是正常優先級的變化幅度,而5到9是加快的優先級的變化幅度。舉例來 說: topicPublisher.publish (message, DeliveryMode.PERSISTENT, 8, 10000); //Pub-Sub 或 queueSender.send(message,DeliveryMode.PERSISTENT, 8, 10000);//P2P  這個代碼片斷,有兩種消息模型,映射遞送方式是持久的,優先級為加快型,生存周期是10000 (以毫秒度量)。如果生存周期設置為零,這則消息將永遠不會過期。當消息需要時間限制否則將使其無效時,設置生存周期是有用的。
JMS定義了五種不同的消息正文格式,以及調用的消息類型,允許你發送并接收以一些不同形式的數據,提供現有消息格式的一些級別的兼容性。
· StreamMessage -- Java原始值的數據流
· MapMessage--一套名稱-值對
· TextMessage--一個字符串對象
· ObjectMessage--一個序列化的 Java對象
· BytesMessage--一個未解釋字節的數據流

應用程序 編輯

ConnectionFactory 接口(連接工廠)
用戶用來創建到JMS提供者的連接的被管對象。JMS客戶通過可移植的接口訪問連接,這樣當下層的實現改變時,代碼 不需要進行修改。管理員在JNDI名字空間中配置連接工廠,這樣,JMS客戶才能夠查找到它們。根據消息類型的不同,用戶將使用隊列連接工廠,或者主題連 接工廠。
Connection 接口(連接)
連接代表了應用程序和消息服務器之間的通信鏈路。在獲得了連接工廠后,就可以創建一個與JMS提供者的連接。根據不同的連接類型,連接允許用戶創建會話,以發送和接收隊列和主題到目標。
Destination 接口(目標)
目標是一個包裝了消息目標標識符的被管對象,消息目標是指消息發布和接收的地點,或者是隊列,或者是主題。JMS管理員創建這些對象,然后用戶通過JNDI發現它們。和連接工廠一樣,管理員可以創建兩種類型的目標,點對點模型的隊列,以及發布者/訂閱者模型的主題。
Session 接口(會話)
表示一個單線程的上下文,用于發送和接收消息。由于會話是單線程的,所以消息是連續的,就是說消息是按照發送的順序一個一個接收的。會話的好處是它支持事務。如果用戶選擇了事務支持,會話上下文將保存一組消息,直到事務被提交才發送這些消息。在提交事務之前,用戶可以使用回滾操作取消這些消息。一個會話允許用戶創建消息生產者來發送消息,創建消息消費者來接收消息。
MessageConsumer 接口(消息消費者)
由會話創建的對象,用于接收發送到目標的消息。消費者可以同步地(阻塞模式),或(非阻塞)接收隊列和主題類型的消息。
MessageProducer 接口(消息生產者)
由會話創建的對象,用于發送消息到目標。用戶可以創建某個目標的發送者,也可以創建一個通用的發送者,在發送消息時指定目標。
Message 接口(消息)
是在消費者和生產者之間傳送的對象,也就是說從一個應用程序傳送到另一個應用程序。一個消息有三個主要部分:
消息頭(必須):包含用于識別和為消息尋找路由的操作設置。
一組消息屬性(可選):包含額外的屬性,支持其他提供者和用戶的兼容。可以創建定制的字段和過濾器(消息選擇器)。
一個消息體(可選):允許用戶創建五種類型的消息(文本消息,映射消息,字節消息,流消息和對象消息)。
消息接口非常靈活,并提供了許多方式來定制消息的內容。

提供者 編輯

JMS流程圖 JMS流程圖
要使用Java消息服務,你必須要有一個JMS提供者,管理會話和隊列。既有開源的提供者也有專有的提供者。
開源的提供者包括:
Apache ActiveMQ
JBoss 社區所研發的 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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美丝袜美女中出在线| 亚洲精品久久久久久久久久久久| 国产成人高清激情视频在线观看| 成人欧美一区二区三区在线| 5278欧美一区二区三区| 上原亚衣av一区二区三区| 欧美一级片久久久久久久| 国产精品日韩久久久久| 国产视频自拍一区| 欧美老女人性视频| 久久人人爽人人爽人人片亚洲| 亚洲精品小视频| 亚洲自拍偷拍网址| 亚洲精品美女在线观看播放| 国产亚洲人成网站在线观看| 91精品在线一区| 欧美日韩国产中文精品字幕自在自线| 久久久亚洲精选| 97精品一区二区视频在线观看| 欧美性少妇18aaaa视频| 国产日韩在线精品av| 日本欧美国产在线| 欧美人在线视频| 亚洲视频在线播放| 亚洲成人中文字幕| 国产精品色悠悠| 国产精品视频99| 欧美香蕉大胸在线视频观看| 国产成人精品优优av| 欧美激情精品久久久久久黑人| 欧美性受xxxx白人性爽| 亚洲精品二三区| 97人洗澡人人免费公开视频碰碰碰| 亚洲偷熟乱区亚洲香蕉av| 日韩一区二区三区在线播放| 国产精品h在线观看| 成人情趣片在线观看免费| 亚洲性生活视频| 亚洲性xxxx| 91地址最新发布| 亚洲二区在线播放视频| 成人www视频在线观看| 欧美激情xxxx| 亚洲黄页视频免费观看| 日韩精品极品视频免费观看| 亚洲天堂av综合网| 亚洲资源在线看| 亚洲国产精久久久久久久| 91精品视频免费| 亚洲美女久久久| 亚洲激情国产精品| 亚洲国产日韩一区| 久久精品91久久久久久再现| 91爱视频在线| 久久九九亚洲综合| 欧美一级高清免费| 久久精品视频在线| 成人黄色免费看| 国产精品久久久久aaaa九色| 国产成人精品日本亚洲| 欧美限制级电影在线观看| 美日韩精品免费观看视频| 黄色一区二区在线观看| 国产在线视频一区| 亚洲福利视频专区| 免费av一区二区| 国产一区二区丝袜高跟鞋图片| 成人性生交xxxxx网站| 自拍偷拍亚洲在线| 亚洲精品99999| 日韩av日韩在线观看| 欧美精品中文字幕一区| 国产精品一区二区久久国产| 久久99久久99精品免观看粉嫩| 欧美性xxxx极品hd欧美风情| 欧美黄色小视频| 亚洲精品99久久久久中文字幕| 一区二区亚洲欧洲国产日韩| 欧美午夜女人视频在线| 色播久久人人爽人人爽人人片视av| 久久久噜久噜久久综合| 91久久国产精品91久久性色| 欧美老女人在线视频| 国产精品国产三级国产专播精品人| 最新亚洲国产精品| 国产成人精品优优av| 欧美精品激情在线观看| 国产精品扒开腿做爽爽爽男男| 日本亚洲欧洲色| 国自在线精品视频| 亚洲黄色有码视频| 久久免费国产精品1| 亚洲自拍小视频| 91香蕉电影院| 欧美福利视频网站| 久久成人在线视频| 一区二区三区在线播放欧美| 国产精品美女久久| 国产精品久久久久久av福利| 不用播放器成人网| 日韩美女av在线| 亚洲国产女人aaa毛片在线| 色婷婷**av毛片一区| 日韩免费av片在线观看| 精品国产欧美成人夜夜嗨| 成人在线免费观看视视频| 亚洲天天在线日亚洲洲精| 国产精品96久久久久久| 欧美激情一区二区三区久久久| 日韩在线视频一区| 91在线视频一区| 97av在线视频免费播放| 欧美日韩亚洲精品一区二区三区| 日本成人在线视频网址| 日韩大胆人体377p| 国产视频精品一区二区三区| 亚洲男人的天堂在线播放| 中文字幕不卡在线视频极品| 日韩精品在线视频美女| 国产精品扒开腿做爽爽爽视频| 国产精品欧美一区二区三区奶水| 中文字幕9999| 国产精品久久久久久久7电影| 欧美大成色www永久网站婷| 亚洲第一男人av| 91成人在线播放| 国产日韩在线亚洲字幕中文| 国产精品久久久久久久久久久久久久| 日韩精品视频三区| 97av在线视频免费播放| 欧美成人激情视频| 91视频免费在线| 国内精品模特av私拍在线观看| www.欧美视频| 亚洲男人天堂古典| 国产午夜精品视频| 91美女片黄在线观看游戏| 国产福利视频一区| 久久噜噜噜精品国产亚洲综合| 欧美华人在线视频| 中文日韩在线观看| 国语自产精品视频在免费| 88国产精品欧美一区二区三区| 久久久国产精品免费| 国产精品一区二区电影| 久久精品中文字幕免费mv| 亚洲成av人片在线观看香蕉| 国产视频在线一区二区| 午夜精品视频网站| 国产激情综合五月久久| 欧美最顶级的aⅴ艳星| 国产精品入口夜色视频大尺度| 亚洲精品91美女久久久久久久| 欧美日韩精品在线观看| 国产精品嫩草视频| 国产在线999| 欧美精品免费播放| 日韩有码在线电影| 欧美激情一区二区三区在线视频观看| 精品国产一区二区三区久久狼5月| 2020国产精品视频| 欧美国产亚洲视频| 国产一区二区三区视频| 奇米4444一区二区三区|