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的改進版本