JMS相關(jsr 914)

 

1.       消息是JMS的一種類型對象,由兩部分組成:報頭和消息主體。報頭由路由信息以及有關該消息的元數據組成。

2.       根據有效負載的類型來劃分:

簡單文本(TextMessage)

可序列化的對象(ObjectMessage)

屬性集合(MapMessage)

字節流(BytesMessage)

原始值流(StreamMesage)

無有效負載的消息(Message)

3.       支持兩種模型

點對點模型(point to point    PTP)

發佈者/訂閱者模型(publish/subscribe)  pub/sub

4.       JMS只是接口,並沒有給與實現,實現JMS接口的消息中間件成爲JMS Provider

5.       開發JMS的步驟

廣義上說,一個JMS應用是幾個JMS客戶端交換信息,開發JMS應用程序由以下幾步構成:

JNDI得到ConnectionFactory對象

JNDI得到目標隊列或主題對象,及Destination對象

ConnectionFactory創建Connection對象

Connection對象創建一個或多個JMS  Session

SessionDestination創建MessageProducerMessageConsumer

通知Connection開始傳遞消息

6.       ProduceràConnectionFactoryàConnectionàsessionà(Message/Destination)

Destination+SessionàProducer

Destination+SessionàMessageConsumer

7.        

 

8.       消息類型

結構化或半結構化的消息類型:MapMessage,ObjectMessage,StreamMeaasge

非結構化或自由格式:TextMessage,BytesMessage

9.       JMS能在JAVAEE五花八門的協議裏,webservice滿天飛的時候佔有一定的位置,是因爲:

它可以把不影響用戶執行效果又比較耗時的任務(比如發送郵件通知管理員)異步的扔給JMS服務端去做,而儘快的把屏幕返回給用戶

 

服務端能夠多線程排隊響應高併發的請求,並保證請求不丟失

 

可以在java世界裏達到最高的解耦,客戶端與服務端無需直連,甚至無需知曉對方是誰、在哪裏、有多少人,只要對流過的嘻嘻做響應就行了,在企業應用環境發扎的時候,作用明顯

10.   ActiveMQ的特性

完全支持JMS1.1JAVAEE1.4規範的JMS Provider實現,也是Apache  Geronimo默認的JMS Provider

 

POJO without Ejb Container,不需要實現Ejb複雜的Message Bean接口配置

 

Spring base,可使用spring IOCAOP

 

EFFECTIVE,基於JCA Container實現

11.   連接的Url  failover:(tcp://localhost:61616)

其中failover關鍵字表示客戶端與ActiveMQ server的連接中斷後,客戶端會自動重新連接

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