ActiveMQ學習筆記

來源:互聯網
上載者:User
1. 基礎概念

ActiveMQ:是Apache出品,最流行的,能力強勁的開源訊息匯流排。是一個完全支援JMS1.1和J2EE 1.4規範的 JMS Provider實現。

JMS(JavaMessage Service):是一個Java平台中關於面向訊息中介軟體(MOM)的API,用於在兩個應用程式之間,或分布式系統中發送訊息,進行非同步通訊。 2. JMS訊息模式

1) 點對點或隊列模式

  每個訊息只能有一個消費者。訊息的生產者和消費者之間沒有時間上的相關性,無論消費者在生產者發送訊息的時候是否處於運行狀態,它都可以提取訊息。

2) Pub/Sub 發布/訂閱模式

每個訊息可以有多個消費者。生產者和消費者之間有時間上的相關性。訂閱一個主題的消費者只能消費自它訂閱之後發布的訊息。 3. Broker節點

代表一個運行MQ的節點。 4. Transport傳輸方式

ActiveMQ目前支援的Transport有:VM Transport、TCP Transport、NIO Transport、SSL Transport、Peer Transport、UDP Transport、Multicast Transport、HTTP and HTTPS Transport、WebSockets Transport、Failover Transport、Fanout Transport、Discovery Transport、ZeroConf Transport等。

1) VM Transport:允許用戶端和Broker直接在VM內部通訊,採用的串連不是Socket串連,而是直接的方法調用,從而避免了網路傳輸的開銷。應用情境也僅限於Broker和用戶端在同一JVM環境下。

2) TCP Transport:用戶端通過TCP Socket串連到遠程Broker。配置文法:

tcp://hostname:port?transportOptions

3) HTTP and HTTPS Transport:允許用戶端使用REST或者Ajax的方式進行串連。這意味著可以直接使用Javascript向ActiveMQ發送訊息。

4) WebSockets Transport:允許用戶端通過HTML5標準的WebSockets方式串連到Broker。

5) Failover Transport:青龍系統MQ採用的就是這種串連方式。這種方式具備自動重新串連的機制,工作在其他Transport的上層,用於建立可靠的傳輸。允許配置任意多個的URI,該機制將會自動選擇其中的一個URI來嘗試串連。配置文法:

failover:(tcp://localhost:61616,tcp://localhost:61617,.....)?transportOptions

6) Fanout Transport:主要適用於生產訊息發向多個代理。如果多個代理出現環路,可能造成消費者接收重複的訊息。所以,使用該協議時,最好將訊息發送給多個不相串連的代理。 5. Persistence持久化儲存

1) AMQ Message Store

ActiveMQ 5.0 的預設持久化儲存方式。

2) Kaha Persistence

這是一個專門針對訊息持久化的解決方案。它對典型的訊息使用模式進行了最佳化。

3) JDBC Persistence

目前支援的資料庫有:Apache Derby, Axion, DB2, HSQL, Informix, MaxDB, MySQL, Oracle, Postgresql, SQLServer, Sybase。

4) Disable Persistence

不應用持久化儲存。 6. 叢集方案

1. Master / Slave

1.1. Pure Master Slave

無單點故障;

不需要依賴共用檔案系統或是共用資料庫,使用 KahaDB的方式持久化儲存;

一個Master只能帶一個Slave;

Master工作期間,會將訊息狀況自動同步到Slave;

Master一旦崩潰,Slave自動接替其工作,已發送並尚未消費的訊息繼續有效;

Slave接手後,必須停止Slave才能重啟先前的Master;

1.2. Shared File System Master Slave

1.3. JDBC Master Slave

配置上,不存在Master和Slave的區分,多個共用資料來源的Broker構成JDBC Master Slave;

首先搶到資源(資料庫鎖)的Broker成為Master,其他Broker定期嘗試搶佔資源;

一旦Master崩潰,其他Broker搶佔資源,最終只有一台搶到,立刻成為Master,之前的Master即便重啟成功,也只能作為Slave等待; 7. 延伸連結

1. ActiveMQ  http://activemq.apache.org/

2. Metamorphosis (MetaQ)  http://metaq.taobao.org/

淘寶開源分布式訊息中介軟體,在淘寶和支付寶有著廣泛應用。

3. DotNetMQ

基於C#和.NET架構的開源訊息佇列系統。

4. JBoss Messaging  http://www.jboss.org/jbossmessaging/

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.