1. 程式人生 > >RabbitMQ基礎使用之集群構建

RabbitMQ基礎使用之集群構建

art app cmd wget 裝包 hosts node fir 命令

簡介

RabbitMQ是基於Erlang開發的一種消息隊列服務,本篇文章主要部署三臺機器用來實現集群的普通模式與鏡像模式!歡迎大家吐槽交流學習!

特點

集群節點包括內存節點和磁盤節點,有了磁盤節點就支持消息的持久化。

1.安裝

1.1安裝前的準備工作

1.首先查看系統版本,我這裏三臺阿裏雲CentOS!
[root@Ali-Zookeeper-MQ01 rabbit-rpm]# cat /etc/redhat-release 
CentOS Linux release 7.4.1708 (Core) 
2.規劃修改所有節點的主機名。
[root@Ali-Zookeeper-MQ01 rabbit-rpm]# cat /etc/hostname
Ali-Zookeeper-MQ01
[root@Ali-Zookeeper-MQ01 rabbit-rpm]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.5.0.203 Ali-Zookeeper-MQ01
10.5.0.228 Ali-Zookeeper-MQ02
10.5.0.229 Ali-Zookeeper-MQ03
另外倆臺改成對應的配置!
3.關閉防火墻
# 停止firewall
systemctl stop firewalld.service
# 禁止firewall開機啟動
systemctl disable firewalld.service
# 查看防火墻狀態
[root@Ali-Zookeeper-MQ01 ~]# firewall-cmd --state
not running
4.安裝Erlang
# yum安裝epel-release
yum -y install epel-release
# 安裝Erlang環境
yum -y install erlang  

1.2使用rpm正式安裝mq

# 創建目錄用來存放rabbitmq的rpm
mkdir /usr/local/src/rabbit-rpm
# 切換到/usr/local/rabbit-rpm目錄                
cd /usr/local/src/rabbit-rpm
# 下載RabbitMQ-3.6.9安裝包rpm
wget  http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.9/rabbitmq-server-3.6.9-1.el7.noarch.rpm 
# 開始安裝,當看到Complete!提示時,安裝完成!    
yum -y install rabbitmq-server-3.6.9-1.el7.noarch.rpm

1.3配置mq集群-普通模式

首先要保證三臺機器安裝的軟件版本一致,主機名配置文件一致!
集群-普通模式-配置操作

1.設置Erlang Cookie 
  Erlang Cookie 文件:/var/lib/rabbitmq/.erlang.cookie。三臺主機分別創建,給予400權限修改屬主屬組。cookie文件的內容要一致!
vim /var/lib/rabbitmq/.erlang.cookie
chmod 777 /var/lib/rabbitmq/.erlang.cookie
scp -r /var/lib/rabbitmq/.erlang.cookie root@Ali-Zookeeper-MQ02:/var/lib/rabbitmq/.erlang.cookie
scp -r /var/lib/rabbitmq/.erlang.cookie root@Ali-Zookeeper-MQ03:/var/lib/rabbitmq/.erlang.cookie
chmod 400 /var/lib/rabbitmq/.erlang.cookie
chown rabbitmq /var/lib/rabbitmq/.erlang.cookie
chgrp rabbitmq /var/lib/rabbitmq/.erlang.cookie
2.啟動各節點 
service rabbitmq-server start
3.組成集群,在02,03節點上執行命令將02,03加入01.
rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@Ali-Zookeeper-MQ01 --ram
rabbitmqctl start_app
4.如果需要退出集群
rabbitmqctl stop_app 
rabbitmqctl reset 
rabbitmqctl start_app
5.查看集群狀態
[root@Ali-Zookeeper-MQ01 ~]# rabbitmqctl cluster_status
Cluster status of node ‘rabbit@Ali-Zookeeper-MQ01‘ ...
[{nodes,[{disc,[‘rabbit@Ali-Zookeeper-MQ01‘]},
         {ram,[‘rabbit@Ali-Zookeeper-MQ03‘,‘rabbit@Ali-Zookeeper-MQ02‘]}]},
 {running_nodes,[‘rabbit@Ali-Zookeeper-MQ03‘,‘rabbit@Ali-Zookeeper-MQ02‘,
                 ‘rabbit@Ali-Zookeeper-MQ01‘]},
 {cluster_name,<<"rabbit@Ali-Zookeeper-MQ01">>},
 {partitions,[]},
 {alarms,[{‘rabbit@Ali-Zookeeper-MQ03‘,[]},
          {‘rabbit@Ali-Zookeeper-MQ02‘,[]},
          {‘rabbit@Ali-Zookeeper-MQ01‘,[]}]}]
6.三臺上都開啟web管理功能
rabbitmq-plugins enable rabbitmq_management

web頁面訪問效果

1.4補充說明

啟動 RabbitMQ 服務
systemctl start rabbitmq-server
查看 RabbitMQ 狀態
systemctl status rabbitmq-server
停止 RabbitMQ 服務
systemctl stop rabbitmq-server
開啟web管理
rabbitmq-plugins enable rabbitmq_management 
查看當前所有用戶
rabbitmqctl list_users
查看默認guest用戶的權限
rabbitmqctl list_user_permissions guest
由於RabbitMQ默認的賬號用戶名和密碼都是guest。為了安全起見, 刪掉默認用戶guest
rabbitmqctl delete_user guest
添加新用戶
rabbitmqctl add_user username password
設置用戶tag
rabbitmqctl set_user_tags username administrator
賦予用戶默認vhost的全部操作權限
rabbitmqctl set_permissions -p / username “.” “.” “.*”

RabbitMQ基礎使用之集群構建