最近業務涉及到了數據的傳輸,因爲涉及數據的持久化,因此接觸到了RabbitMQ,這款消息隊列工具,特此記錄學習一下。
1. RabbitMQ簡介
介紹RabbitMQ之前,需要先介紹一下什麼是消息隊列(Message Queue,簡稱MQ),從字面意思上看,本質是個隊列,FIFO先入先出,只不過隊列中存放的內容是message而已。
消息隊列的主要用途:不同進程Process/線程Thread之間通信。目前比較流行的消息隊列有:RabbitMq、ActiveMq、ZeroMq、kafka,以及阿里開源的RocketMQ。
AMQP,即Advanced Message Queuing Protocol,高級消息隊列協議,是應用層協議的一個開放標準,爲面向消息的中間件設計。消息中間件主要用於組件之間的解耦,消息的發送者無需知道消息使用者的存在,反之亦然。 AMQP的主要特徵是面向消息、隊列、路由(包括點對點和發佈/訂閱)、可靠性、安全。 RabbitMQ是一個開源的AMQP實現,服務器端用Erlang語言編寫,支持多種客戶端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用於在分佈式系統中存儲轉發消息,在易用性、擴展性、高可用性等方面表現不俗。
2. RabbitMQ安裝
安裝環境:Centos 7
安裝流程:
1. 由於RabbitMQ依賴Erlang, 需要先安裝Erlang
安裝Erlang指令,利用wget插件直接下載安裝
# 添加erlang solutions源
$ wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
$ sudo rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
# 啓動EPEL源
$ sudo yum install epel-release
# 安裝erlang
$ sudo yum install erlang
2. 完成後安裝RabbitMQ
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.6/rabbitmq-server-3.6.5.el7.noarch.rpm
3. 下載完成後安裝
yum install rabbitmq-server-3.6.5-1.el7.noarch.rpm
4. 開啓web管理接口
RabbitMQ自帶了web管理界面,只需要啓動插件便可以使用,非常方便。
$ sudo rabbitmq-plugins enable rabbitmq_management
5. 然後通過瀏覽器訪問 http://localhost:15672
說明安裝成功