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