消息中間件在分佈式系統中完成消息的發送和接收。服務器
消息中間件可利用高效可靠的消息傳遞機制進行平臺無關的數據交流, 並基於數據通訊來進行分佈式系統的集成。架構
3)經過提供消息傳遞和消息 排隊模型,能夠在分佈式環境下擴展進程間的通訊。併發
JMS是JavaEE中的一個關於消息的規範,是一套與具體平臺無關的API異步
JMS元素:分佈式
JMS提供者 ---- 鏈接面向消息中間件的,JMS接口的一個實現線程
JMS客戶 ------ 生產或消費消息的基於Java的應用程序或對象cdn
JMS生產者 ---- 建立併發送消息的JMS客戶中間件
JMS消費者 ---- 接收消息的JMS客戶對象
JMS消息 ------ 能夠在JMS客戶之間傳遞的數據的對象blog
JMS隊列 ------ 一個容納那些被髮送的等待閱讀的消息的區域
JMS主題 ------ 一種支持發送消息給多個訂閱者的機制
ConnectionFactory(鏈接工廠): 用戶用來建立到JMS提供者的鏈接的被管對象。
Connection(鏈接): 鏈接表明了應用程序和消息服務器之間的通訊鏈路。
Destination(目標): 消息發佈和接收的地點,或者是隊列,或者是主題。
MessageProducer(消息生產者):由會話建立的對象,用於發送消息到目標。
MessageConsumer(消息消費者):由會話建立的對象,用於接收發送到目標的消息。
Message(消息):是在消費者和生產者之間傳送的對象。
Session(會話):表示一個單線程的上下文,用於發送和接收消息。
一、 點對點或隊列模型
消息生產者生產消息發送到queue中,而後消息消費者從queue中取出而且消費消息。
消息被消費之後,queue中再也不有存儲,因此消息消費者不可能消費到已經被消費的消息。
Queue支持存在多個消費者,可是對一個消息而言,只會有一個消費者能夠消費。
二、 發佈者/訂閱者模型
消息生產者(發佈)將消息發佈到topic中,同時有多個消息消費者(訂閱)消費該消息。 發佈到topic的消息會被全部訂閱者消費。
注意: JEESZ系統中使用ActiveMQ中間件