JMS的兩種程式設計模型

2021-06-19 11:24:49 字數 1429 閱讀 7633

jms訊息機制主要分為兩種模型:ptp模型和pub/sub模型。

ptp模型:(point  to point 對點模型) 每乙個訊息傳遞給乙個訊息消費者,保證訊息傳遞給訊息消費者,且訊息不會同時被多個消費者接收。如果訊息消費者暫時不在連線範圍內,jms會自動保證訊息不會丟失,直到訊息消費者進入連線,訊息將自動送達。因此,jms需要將訊息儲存到永久性介質上,例如資料庫或者檔案。

pub-sub模型:(publish-subscription 發布者訂閱者模型)每個主題可以擁有多個訂閱者。jms系統負責將訊息的副本傳給該主題的每個訂閱者。

如果希望每一條訊息都能夠被處理,那麼應該使用ptp訊息模型。如果並不要求訊息都必須被訊息消費者接收到的情況下,可使用pub-sub訊息模型。pub-sub模型可以在一對多的訊息廣播時使用。

ptp和pub-sub程式設計模型示意圖:

在jms1.1版本中,為兩種訊息模型提供了統一的程式設計介面,即處理ptp訊息模型的程式**與處理pub-sub訊息模型的程式**差異不是很大,jms客戶端**直接使用jms1.1提供的api程式設計即可,至於底層究竟是使用哪種程式設計模型,客戶端並不關心,也幾乎沒有任何區別。

jms統一程式設計模型:

jms1.1 api說明:

connectionfactory:連線工廠,jms客戶端使用jndi查詢、定位連線工廠

connection:jms連線,由連線工廠建立。表示客戶機與伺服器之間的活動連線

session:jms會話,由連線工廠建立。表示客戶機與jms伺服器之間的通訊狀態

queue:jms訊息目的地,訊息生產者傳送訊息的目的地,訊息消費者獲取訊息的訊息源

messageproducer:訊息生產者,負責建立、傳送訊息

messageconsumer:訊息消費者,負責接收並讀取訊息

訊息生產者傳送訊息:

1. 通過jndi查詢來獲取connectionfactory

2. 通過connectionfactory建立connection

3. 通過connection建立session

4. 通過session建立messageproducer

5. 通過session建立空的jms訊息

6. jms訊息填充訊息內容

7. 通過jndi查詢獲取jms訊息的目的地

8. messageproducer傳送訊息

9. 關閉jms資源

這些是有jms api提供,這幾步的實現在下篇的mdb例項中會有**。

關於JMS的程式設計模型

最近又使用了jms,仔細研究後,覺得可以用看電視來比喻jms的程式設計模型 看電視之前需要買電視,買電視之前需要獲得各種電視廠家資訊,然後確定需要買的一種,買到電視後,看自己想看的電視節目了,注意 在這過程當中,各種不同廠家的電視,都可以收看到系統的電視節目,這與jms的程式設計模型很像,其實可以推...

兩種盒模型

原來存在兩種盒模型,w3c標準盒模型和ie盒模型。兩者盒模型下計算元素的寬高不一致,為了實現統一,採取的方法是避免觸發ie盒模型,使用宣告就可以避免。下面我們來看看兩者的區別。w3c標準盒模型 width margin left margin right padding left padding r...

盒子兩種模型

盒子模型 框模型 是css部分非常重要的一部分知識,css在處理網頁的時候,認為每個元素都處在乙個不可見的盒子中。盒子模型的構想,把所有的元素都想象成盒子,那麼對網頁進行布局的時候就可以理解為對盒子進行排列。至於要將相應的盒子擺放到網頁相應的位置中即可完成頁面布局。css 盒子模型 box mode...