1. 程式人生 > >ActiveMQ介紹以及應用

ActiveMQ介紹以及應用

  ActiveMQ是完全基於JMS規範實現的一個訊息中介軟體,主要應用於分散式系統架構中,

幫助構建高可用,高效能,可伸縮的企業級面向訊息服務的系統。

一、ActiveMQ支援的語句

Java,C,C++,C#,Ruby,Perl,Python,PHP

二、ActiveMQ傳遞的五種訊息型別

TextMessage、MapMessage、ObjectMessage、BytesMessage、和StreamMessagg五種訊息型別)

三、ActiveMQ兩種訊息傳遞方式

1.點對點的訊息傳遞域

(1) 每個訊息只能有一個消費者

(2)訊息的生產者和消費者之間在時間上沒有相關性。無論生產者傳送訊息的時候是否

處於執行狀態,都可以提取訊息

2釋出和訂閱訊息傳遞域

(1)每個訊息都可以有多個消費者

(2)生產者和消費者之間有相關性。訂閱一個主題的消費者只能消費

它訂閱之後釋出的訊息。

3訊息的結構組成

JMS訊息組成部分:訊息頭,訊息體,屬性

屬性包含識別資訊和路由資訊

JMSDestination  訊息傳送的目的滴(queue或者topic)

JMSDeliveryMode   傳送模式(持久化模式或者非持久化模式)

JMSPriority    訊息優先順序 基本從低到高是0-9,預設基本是4,JMS provider 

 並不一定按照優先級別提交訊息

JMSMessageID  唯一識別每個訊息的標誌

訊息體:我們需要傳遞的內容

四、訊息的同步傳送和非同步傳送

五、持久化機制

1.kahadb 預設的實現機制

 在傳遞activeMQ的data資料夾中會生成db-1.log ,db.data,de.redo

db-1.log為資料檔案,db.data為索引,db.redo用於資料恢復

2jdbc 儲存

自動生成activemq_acks,activemq_lock, active_msgs 三張表

activemq_acks 儲存持久化訂閱資訊

activemq_lock 鎖表

activemq_msgs 訊息內容

3.Memory 記憶體

4.Leve DB

可以實現leveDB+zookeeper主從複製 

5、JDBC with ActiveMQ journal 

JDBC的改進版本