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