天天看點

jms(二):JMS規範1、JMS相關概念2、JMS消息模式3、JMS編碼接口4、JMS編碼接口之間的關系5、ActiveMq的安裝

1、JMS相關概念

提供者:實作JMS規範的消息中間件伺服器

用戶端:發送或者接收消息的應用程式

生産者和釋出者:建立并發送消息的用戶端

消費者和訂閱者:接收并處理消息的用戶端

消息:應用程式之間傳遞的資料内容

消息模式:在用戶端之間傳遞消息的方式,JMS中定義了主題和隊列兩種模式

2、JMS消息模式

2.1、隊列模式:

用戶端包括生産者和消費者

隊列中的消息隻能被一個消費者消費

消費者可以随時消費隊列中的消息

2.2、主題模式

用戶端包括釋出者和訂閱者

主題中的消息被所有訂閱者消費

消費者不能消費訂閱之前就發送到主題中的消息

3、JMS編碼接口

ConnectionFactory 用于建立連接配接消息中間件的連接配接工廠

Connection 代表了應用程式和消息伺服器之間的通信鍊路

Destination 指消息釋出和接收的地點,包括隊列或主題

Session 表示一個單線程的上下文,用于發送和接收消息

MessageConsumer 由會話建立,用于接收發送到目标的消息

MessageProducer 由會話建立,用于發送消息到目标

Message 是在消費者和生産者之間傳送的對象,消息頭,一組消息屬性,一個消息體

4、JMS編碼接口之間的關系

ConnectionFactory 建立Connection

Connection 建立(多個)Session

Session 建立MessageProducer,MessageConsumer,Message

MessageProducer 發送 Destination

MessageConsumer 接收Destination

5、ActiveMq的安裝

Windows:

下載下傳安裝包:http://activemq.apache.org/activemq-5154-release.html

直接啟動 activemq.bat

當出現:ActiveMq Webconsole available at http://0.0.0.0:8161 說明啟動成功。

可能出現的問題(Windows7/32位/4G記憶體):

wrapper : Startup failed:Timed out waiting for a signal from the JVM.

wrapper: JVM did not exit on request, terminated.

解決 :

在配置檔案wrapper.conf中增加配置:

wrapper.startup.timeout=0

wrapper.ping.timeout=0

使用服務啟動 InstallService.bat,然後去服務清單啟動activemq服務

啟動成功後,再浏覽器輸入位址加端口8161通路:http://127.0.0.1:8161

選擇Manage ActiveMq broker登入,賬号/密碼:admin/admin

登入成功後,可以看到使用者資訊。

Linux:

下載下傳安裝包,解壓,./bin activemq.sh start

隊列模式下,多個消費者平均接收消息。消費者可以在生産者之後啟動。

主題模式下,多個消費者接收的是全部的消息,并且消費者必須要先訂閱,才能接收到消息。

JMS