搭建rabbitmq服務
1.準備3臺服務器,同步好時鐘、關閉selinux和防火墻,配置/etc/hosts文件
2.安裝epel-release、erlang、rabbitmq-server
[root@mon01 ~]# wget -O /etc/yum.repos.d/aliyun.repo https://mirrors.aliyun.com/repo/Centos-7.repo && yum clean all && yum makecache
[root@mon01 ~]# yum install -y epel-release
[root@mon01 ~]# yum install -y erlang rabbitmq-server.noarch
3.啟動服務,并設置開機啟動
[root@mon01 ~]# systemctl enable rabbitmq-server
[root@mon01 ~]# systemctl start rabbitmq-server
4.配置文件/etc/rabbitmq/rabbitmq.config
5.查看集群的狀態
[root@mon01 ~]# rabbitmqctl cluster_status
6.配置集群
編輯rabbitmq的配置文件
[root@mon01 ~]# vim /etc/rabbitmq/rabbitmq-env.conf #內容如下
RABBITMQ_NODE_PORT=5672
ulimit -S -n 4096
RABBITMQ_NODE_IP_ADDRESS=192.168.43.120
[root@mon01 ~]# scp /etc/rabbitmq/rabbitmq-env.conf mon02:/etc/rabbitmq/ #在mon02上修改為本機的ip
[root@mon01 ~]# scp /etc/rabbitmq/rabbitmq-env.conf mon03:/etc/rabbitmq/ #在mon03上修改為本機的ip
[root@mon01 ~]# scp /var/lib/rabbitmq/.erlang.cookie mon02:/var/lib/rabbitmq/.erlang.cookie
[root@mon01 ~]# scp /var/lib/rabbitmq/.erlang.cookie mon03:/var/lib/rabbitmq/.erlang.cookie
[root@mon02 ~]# systemctl restart rabbitmq-server
[root@mon02 ~]# rabbitmqctl stop_app
[root@mon02 ~]# rabbitmqctl join_cluster --ram rabbit@mon01 #該集群名稱可以在mon01上執行rabbitmqctl cluster_status查看
[root@mon02 ~]# rabbitmqctl start_app
mon03同上mon02操作,加入集群
查看rabbitmq的功能插件
[root@mon01 ~]# rabbitmq-plugins list
開啟rabbitmq的圖像化界面,重啟rabbitmq-server服務
[root@mon01 ~]# rabbitmq-plugins enable rabbitmq_management
[root@mon01 ~]# service rabbitmq-server restart
修改rabbitmq的guest的密碼
[root@mon01 ~]# rabbitmqctl change_password guest admin
創建一個普通用戶openstack
[root@mon01 ~]# rabbitmqctl add_user openstack admin
將openstack設置為管理員權限
[root@mon01 ~]# rabbitmqctl set_user_tags openstack administrator
設置openstack的用戶的權限
[root@mon01 ~]# rabbitmqctl set_permissions openstack ".*" ".*" ".*"
刪除一個rabbitmq節點
[root@mon02 ~]# rabbitmqctl stop_app
[root@mon01 ~]# rabbitmqctl forget_cluster_node rabbit@mon02
或者
[root@mon02 ~]# rabbitmqctl stop_app
[root@mon02 ~]# rabbitmqctl reset
[root@mon02 ~]# rabbitmqctl start_app
將剔除的節點加回集群內
[root@mon02 ~]# mv /var/lib/rabbitmq/mnesia/rabbit\@mon02 /tmp/
[root@mon02 ~]# systemctl restart rabbitmq-server
[root@mon02 ~]# rabbitmqctl stop_app
[root@mon02 ~]# rabbitmqctl join_cluster --ram rabbit@mon01
[root@mon02 ~]# rabbitmqctl start_app
更改集群節點的類型
[root@mon02 ~]# rabbitmqctl stop_app
[root@mon02 ~]# rabbitmqctl change_cluster_node_type disc
[root@mon02 ~]# rabbitmqctl start_app
7.注意事項
7.1保證集群中至少有一個磁盤類型的節點,以防數據丟失,在更改節點數據類型的時候特別需要注意
7.2若整個集群被停掉了,應保證最后一個down掉的節點被最先啟動,若不能則要使用forget_cluster_node
命令將其移出集群
7.3若集群中節點幾乎同時以不可控的方式down了,此時在某一個節點使用force_boot命令重啟節點
浙公網安備 33010602011771號