jms重要概念筆記

1)JMS 規範

JAVA 消息服務(JMS)定義了Java 中訪問消息中間件的接口。JMS 只是接口,

並沒有給予實現,實現JMS 接口的消息中間件稱爲JMS Provider,例如ActiveMQ。

2)術語

JMS Provider:實現JMS 接口的消息中間件;
PTP:Point to Point,即點對點的消息模型;
Pub/Sub:Publish/Subscribe,即發佈/訂閱的消息模型;
Queue:隊列目標;
Topic:主題目標;
ConnectionFactory:連接工廠,JMS 用它創建連接;
Connection:JMS 客戶端到JMS Provider 的連接;
Destination:消息的目的地;
Session:會話,一個發送或接收消息的線程;
MessageProducer:由Session 對象創建的用來發送消息的對象;
MessageConsumer:由Session 對象創建的用來接收消息的對象;
Acknowledge:簽收;
Transaction:事務。

3)JMS 編程模型

在 JMS 編程模型中,JMS 客戶端(組件或應用程序)通過 JMS 消息服務交換消息。
消息生產者將消息發送至消息服務,消息消費者則從消息服務接收這些消息。這些消息
傳送操作是使用一組實現 JMS 應用編程接口 (API) 的對象(由 JMS Provide 提供)來
執行的。

4)JMS 編程域

JMS 支持兩種截然不同的消息傳送模型:PTP(即點對點模型)和Pub/Sub(即發佈
/訂閱模型),分別稱作:PTP Domain 和Pub/Sub Domain。
PTP(使用Queue 即隊列目標) 消息從一個生產者傳送至一個消費者。在此傳
送模型中,目標是一個隊列。消息首先被傳送至隊列目標,然後根據隊列傳送策略,從
該隊列將消息傳送至向此隊列進行註冊的某一個消費者,一次只傳送一條消息。可以向
隊列目標發送消息的生產者的數量沒有限制,但每條消息只能發送至、並由一個消費者
成功使用。如果沒有已經向隊列目標註冊的消費者,隊列將保留它收到的消息,並在某
個消費者向該隊列進行註冊時將消息傳送給該消費者。
Pub/Sub(使用Topic 即主題目標) 消息從一個生產者傳送至任意數量的消費
者。在此傳送模型中,目標是一個主題。消息首先被傳送至主題目標,然後傳送至所有
已訂閱此主題的活動消費者。可以向主題目標發送消息的生產者的數量沒有限制,並且
每個消息可以發送至任意數量的訂閱消費者。主題目標也支持持久訂閱的概念。持久訂
閱表示消費者已向主題目標進行註冊,但在消息傳送時此消費者可以處於非活動狀態。
當此消費者再次處於活動狀態時,它將接收此信息。如果沒有已經向主題目標註冊的消
費者,主題不保留其接收到的消息,除非有非活動消費者註冊了持久訂閱。

5)JMSDeliveryMode 傳送模式

有兩種模式: PERSISTENT 和
NON_PERSISTENT,PERSISTENT 表示該消息一定要被送到
目的地,否則會導致應用錯誤。NON_PERSISTENT 表示偶
然丟失該消息是被允許的,這兩種模式使開發者可以在
消息傳送的可靠性和吞吐量之間找到平衡點。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章