RabbitMQ消息隊列服務

消息隊列(Message Queue,MQ):

     是一種應用程式對應用程式的通訊方法。應用程式通過讀寫出入隊列的消息(針對應用程式的數據)來通訊,而無需專用連接來鏈接它們。消息傳遞指的是程式之間通過在消息中發送數據進行通訊,而不是通過直接調用彼此來通訊,直接調用通常是用於諸如遠程過程調用的技術。排隊指的是應用程式通過隊列來通訊。隊列的使用除去了接收和發送應用程式同時執行的要求。

RabbitMQ概念:

         屬於一個流行的開源消息隊列系統。屬於AMQP( 高級消息隊列協議 ) 標準的一個 實現。是應用層協議的一個開放標準,為面向消息的中間件設計。用於在分散式系統中存儲轉發消息,在易用性、擴展性、高可用性等方面表現不俗。消息中間件主要用於組件之間的解耦,消息的發送者無需知道消息使用者的存在,反之亦然。AMQP 的主要特徵是面向消息、隊列、路由(包括點對點和發布 / 訂閱)、可靠性、安全。

 


 

 RabbitMQ安裝配置(controller節點)

一、安裝並啟動RabbitMQ消息隊列服務

安裝Rabbitmq的服務端: yum -y install rabbitmq-server

關防火牆

設置開機啟動: systemctl enable rabbitmq-server

立即啟動服務;  systemctl start rabbitmq-server   (若重啟失敗,查看hosts中controllerIP地址是否對應)

查看伺服器狀態: systemctl status rabbitmq-server

 

 

 

 

二、管理用戶與密碼

為了保證安全性,不能讓用戶任意在消息隊列中存放或獲取消息,需要先進行用戶名和密碼的認證。給RabbitMQ添加一個用戶並設置密碼後,用戶即可使用消息隊列服務。

新建RabbitMQ用戶命令 rabbitmqctl add_user <用戶名> <密碼>
刪除… rabbitmqctl delete_user <用戶名> 
修改… rabbitmqctl change_password <用戶名> <新密碼>

添加一個openstack用戶,設置新密碼為000000

rabbitmqctl add_user openstack RABBIT_password

rabbitmqctl change_password openstack 000000

 

三、管理用戶許可權

rabbitmqctl set_permissions openstack ‘.*’ ‘.*’ ‘.*

以上命令給『openstack』這個用戶設置了使用隊列的許可權。命令中的3個『.*』分別對應配置、寫入、讀取許可權。其中『.*』表示所有資源。命令執行完成後『openstack』用戶就擁有了對RabbitMQ所有資源的配置、寫入、讀取許可權。

 

 設置該用戶為管理員:rabbitmqctl set_user_tags openstack administrator

查看用戶列表: rabbitmqctl list_users

 

 

四、查看監聽埠 rabbitmq默認埠5672

每一個服務都是通過特定的一個或者數個埠對外提供服務的

netstat -ntlp | grep 5672

 

 

五、查看RabbitMQ插件

/usr/lib/rabbitmq/bin/rabbitmq-plugins list

 

六、打開RabbitMQ插件

/usr/lib/rabbitmq/bin/rabbitmq-plugins enable rabbitmq_management rabbitmq_web_dispatch amqp_client rabbitmq_management_agent

 

 

七、重啟RabbitMQ服務、進入登錄介面

systemctl restart rabbitmq-server

 IP:15672 或 192.168.130.30:15672

 

 登陸成功: