03.03 一文看懂消息隊列中間件--AMQ及部署介紹

概述

最近有個小項目用到了AMQ來做消息隊列,之前介紹的主要是rabbitmq,所以今天主要提一下AMQ,也簡單介紹下兩者的區別~


消息隊列中間件

消息隊列中間件(簡稱消息中間件)是指利用高效可靠的消息傳遞機制進行與平臺無關的數據交流,並基於數據通信來進行分佈式系統的集成。通過提供消息傳遞和消息排隊模型,它可以在分佈式環境下提供應用解耦、彈性伸縮、冗餘存儲、流量削峰、異步通信、數據同步等等功能,其作為分佈式系統架構中的一個重要組件,有著舉足輕重的地位。

目前開源的消息中間件常見的有ActiveMQ、RabbitMQ、Kafka、RocketMQ、ZeroMQ等。

常見的如下:

ActiveMQ是Apache出品的、採用Java語言編寫的完全基於JMS1.1規範的面向消息的中間件,為應用程序提供高效的、可擴展的、穩定的和安全的企業級消息通信。不過由於歷史原因包袱太重,目前市場份額沒有後面三種消息中間件多,其最新架構被命名為Apollo,號稱下一代ActiveMQ,有興趣的同學可行了解。

RabbitMQ是採用Erlang語言實現的AMQP協議的消息中間件,最初起源於金融系統,用於在分佈式系統中存儲轉發消息。RabbitMQ發展到今天,被越來越多的人認可,這和它在可靠性、可用性、擴展性、功能豐富等方面的卓越表現是分不開的。

Kafka起初是由LinkedIn公司採用Scala語言開發的一個分佈式、多分區、多副本且基於zookeeper協調的分佈式消息系統,現已捐獻給Apache基金會。它是一種高吞吐量的分佈式發佈訂閱消息系統,以可水平擴展和高吞吐率而被廣泛使用。目前越來越多的開源分佈式處理系統如Cloudera、Apache Storm、Spark、Flink等都支持與Kafka集成。

RocketMQ是阿里開源的消息中間件,目前已經捐獻個Apache基金會,它是由Java語言開發的,具備高吞吐量、高可用性、適合大規模分佈式系統應用等特點,經歷過雙11的洗禮,實力不容小覷。

ZeroMQ號稱史上最快的消息隊列,基於C語言開發。ZeroMQ是一個消息處理隊列庫,可在多線程、多內核和主機之間彈性伸縮,雖然大多數時候我們習慣將其歸入消息隊列家族之中,但是其和前面的幾款有著本質的區別,ZeroMQ本身就不是一個消息隊列服務器,更像是一組底層網絡通訊庫,對原有的Socket API上加上一層封裝而已。


AMQ部署

1、下載

官網:http://activemq.apache.org/components/classic/download/

選擇最新版本下載即可


2、解壓安裝

tar -xvf amq-5.15.9-bin.tar.gz -C /usr/local/

3、啟動

<code>cd /usr/local/amq/bin
./activemq start/<code>
一文看懂消息隊列中間件--AMQ及部署介紹

4、測試

執行完啟動命令後,觀察到如下日誌,即證明AMQ配置正確、啟動成功。

tail -200f /usr/local/amq/data/activemq.log

一文看懂消息隊列中間件--AMQ及部署介紹



覺得有用的朋友多幫忙轉發哦!後面會分享更多devops和DBA方面的內容,感興趣的朋友可以關注下~


一文看懂消息隊列中間件--AMQ及部署介紹


分享到:


相關文章: