1. 程式人生 > >RabbitMQ 集群配置

RabbitMQ 集群配置

coo 技術 rabbitmq 準備 交換 rabbit 端口開放 消息消費者 都是

簡介

MQ(Message Queue,消息隊列)是一種應用程序對應用程序的通信方法。應用程序通過讀寫出入隊列的消息(針對應用程序的數據)來通信,而無需專用鏈接來鏈接他們。消息傳遞指的是程序之間通常在消息中發送數據進行通信,而不是通過直接調用彼此來通信。排隊指的是應用程序通過隊列來通信。隊列的使用除去了接收和發送應用程序同時執行的要求。
RabbitMQ是目前流行的開源消息隊列系統,用Erlang語言開發。RabbitMQ是AMQP(高級消息隊列協議)的標準實現。如果不熟悉AMOP,直接看RabbitMQ的文檔是比較困難的。不過它也只有幾個關鍵概念,這裏簡單介紹如下:

  • Broker:簡單來說就是消息隊列服務器實體。
  • Exchange:消息交換機,它指定消息按什麽規則,路由到哪個隊列。
    Queue:消息隊列載體,每個消息都會被投入到一個或多個隊列中。
    Binding:綁定,它的作用就是把Exchange和Queue按照路由規則綁定起來。
    Routing Key:路由關鍵字,Exchange根據這個關鍵字進行消息投遞
    Vhost:虛擬主機,一個Broker裏可以開設多個Vhost,用作不同用戶的權限分離。
    Producer:消息生產者,就是投遞消息的程序
    Consumer:消息消費者,就是接受消息的程序
    Channel:消息通道,在每個客戶端的每個連接裏,可建立多個Channel,每個Channel代表一個會話任務。

實驗準備

IP地址                  主機名               操作系統                               用途
192.168.5.129      mq01                CentOS 7.4(64位)                 磁盤節點
192.168.5.128      mq02                CentOS 7.4(64位)                 內存節點
192.168.5.122      mq03                CentOS 7.4(64位)                 內存節點

實驗開始

1.首先配置三個節點的host文件,將如下內容分別加入到三臺服務器上

vim /etc/hostname
刪除localname修改為mq01、mq02、mq03
vim /etc/hosts
192.168.5.129 mq01
192.168.5.128 mq02
192.168.5.122 mq03

2.三個節點安裝epel-release、rabbit-server。

yum install epel-release -y
yum install rabbit-server -y

3.分別查看三個節點並添加管理服務,最後啟動rabbitmq服務:

/usr/lib/rabbitmq/bin/rabbitmq-plugins list                     //查看有哪些服務
/usr/lib/rabbitmq/bin/rabbitmq-pluginns enable rabbitmq_management         // 啟動管理服務
/etc/init.d/rabbitmq-server start                                //啟動rabbitmq服務

4.使用netstat -an | grep 5672進行查看,有如下三個端口開放說明正常。其中15672和55672都是rabbitmq的管理端口,5672則是和生產者、消費者的通信的端口。

5.構建Erlang群集

在Erlang的集群中,各節點是通過一個magic cookie來實現的,文件是400的全線。所以必須保證各個節點cookie保持一致,否則節點無法通信

systemctl stop rabbitmq.server
cd /var/lib/rabbitmq/
vim .erlang.cookie
將其中一臺節點的.erlang.cookie值復制下來保存到其他節點上,或者使用scp的方法也可以,但是要註意文件的權限和屬主屬組。再次啟動兩個內存節點的rabbitmq服務。並將它們加入到一個集群當中。

6.將mq02、mq03作為內存階段與mq01磁盤節點連接起來在mq02、mq03上執行如下命令:

rabbitmqctl stop_app
rabbitmqctl join_cluster --ram rabbit@mq01
rabbitmqctl start_app

7. 打開瀏覽器輸入http://192.168.5.129:55672。它會自動將55672端口改變為15672端口。輸入默認的Username:guest,默認Password:guest。輸入後會出現如下界面:技術分享圖片

RabbitMQ 集群配置