消息队列入门(三)JMS标准及实现
消息中間件
消息中間件即Message-oriented middleware(MOM),消息中間件利用高效可靠的消息傳遞機制進行平臺無關的數據交流,并基于數據通信來進行分布式系統的集成。
通過提供消息傳遞和消息排隊模型,消息中間件可以在分布式環境下擴展進程間的通信。
消息中間件可以即支持同步方式,又支持異步方式。
異步中間件比同步中間件具有更強的容錯性,在系統故障時可以保證消息的正常傳輸。異步中間件技術又分為兩類:廣播方式和發布/訂閱方式。
消息中間件應用主要有兩個優點:異步和解耦。
JMS規范標準
JMS即Java消息服務(Java Message Service),JMS是一個基于Java平臺面向消息中間件(MOM)的API,用于在兩個應用程序之間,
或分布式系統中發送消息,進行異步通信。
Java消息服務是一個與具體平臺無關的API,絕大多數MOM提供商都對JMS提供支持。
JMS是類似于JDBC(Java Database Connectivity),并不局限于某個具體消息中間件,
JDBC 是可以用來訪問許多不同關系數據庫的 API,
而 JMS 則提供同樣與中間件無關的訪問方法,以訪問消息收發服務。
>>JMS對象模型
ConnectionFactory:
連接工廠,JMS 用它創建連接Connection,一般設為單例模式,
一旦創建,就一直運行在應用容器內,客戶端使用JNDI查找連接工廠,然后利用連接工廠創建一個JMS連接。
Connection:
JMS連接表示JMS客戶端和服務器端之間的一個活動的連接,是由客戶端通過調用連接工廠的方法建立的。
Session:
JMS會話表示JMS客戶與JMS服務器之間的會話狀態。JMS會話建立在JMS連接上,表示客戶與服務器之間的一個會話線程。
Destination:
消息的目的,包括隊列(PTP),主題(Pub/Sub)。
Message Producer和Message Consumer:
生產者和消費者對象由Session對象創建,用于發送和接收消息。
Message:
JMS 消息由以下幾部分組成:消息頭,屬性,消息體。
消息頭(header):JMS消息頭包含了許多字段,它們是消息發送后由JMS提供者或消息發送者產生,用來表示消息、設置優先權和失效時間等等,并且為消息確定路由Routing。
屬性(property):由消息發送者產生,用來添加刪除消息頭以外的附加信息。
消息體(body):由消息發送者產生,JMS中定義了5種消息體:ByteMessage、MapMessage、ObjectMessage、StreamMessage和TextMessage。
兩種消息傳遞模型
(1)點對點模型(Point-to-Point)
點對點模型用于消息生產者和消息消費者之間點到點的通信。消息生產者將消息發動到由某個名字標識的特定消費者。這個名字實際上對應于消息服務中的一個隊列(Queue),在消息傳動給消費者之前它被存儲在這個隊列中。隊列可以是持久的,以保證在消息服務出現故障時仍然能夠傳遞消息。
(2)發布-訂閱模型(Publish/Subscribe)
發布-訂閱模型用稱為主題(topic)的內容分層結構代替了PTP模型中的惟一目的地,
發送應用程序發布自己的消息,指出消息描述的是有關分層結構中的一個主題的信息。希望接收這些消息的應用程序訂閱了這個主題。訂閱包含子主題的分層結構中的主題的訂閱者可以接收該主題和其子主題發表的所有消息
本文轉自邴越博客園博客,原文鏈接:http://www.cnblogs.com/binyue/p/4738360.html,如需轉載請自行聯系原作者
總結
以上是生活随笔為你收集整理的消息队列入门(三)JMS标准及实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WCF分布式开发常见错误(25):The
- 下一篇: Java 解析XML的几种方法