centos7的rabbitmq升級到3.7.10集群
#卸載
[root@linux-node1 ~]# systemctl stop rabbitmq-server
[root@linux-node1 ~]# yum remove rabbitmq-server -y
[root@linux-node1 yum.repos.d]# yum remove erlang* -y
[root@linux-node1 ~]# rm -rf /var/lib/rabbitmq/
1 安裝erlang
curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash
yum install erlang -y
查看版本:
erl
3.安裝rabbitmq(當前目錄為rabbitmq-server-3.7.10-1.el7.noarch.rpm包的目錄下)
[root@linux-node1 ~]#wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.10/rabbitmq-server-3.7.10-1.el7.noarch.rpm
[root@linux-node1 ~]#yum install -y rabbitmq-server-3.7.10-1.el7.noarch.rpm
[root@linux-node1 ~]# systemctl start rabbitmq-server
[root@linux-node1 ~]# systemctl enable rabbitmq-server
############
[root@linux-node1 yum.repos.d]# rabbitmqctl add_user admin admin
Creating user "admin" ...
[root@linux-node1 yum.repos.d]# rabbitmqctl set_permissions admin ".*" ".*" ".*"
Setting permissions for user "admin" in vhost "/" ...
密碼設置成admin
[root@linux-node1 ~]# rabbitmq-plugins enable rabbitmq_management
The following plugins have been enabled:
mochiweb
webmachine
rabbitmq_web_dispatch
amqp_client
rabbitmq_management_agent
rabbitmq_management
Applying plugin configuration to rabbit@linux-node1... started 6 plugins.
[root@linux-node1 ~]# systemctl restart rabbitmq-server
[root@linux-node1 ~]# netstat -lntup|grep 5672
tcp 0 0 0.0.0.0:25672 0.0.0.0:* LISTEN 15851/beam
tcp 0 0 0.0.0.0:15672 0.0.0.0:* LISTEN 15851/beam
tcp6 0 0 :::5672 :::* LISTEN 15851/beam
無法登錄頁面,參考:
https://blog.csdn.net/shenhonglei1234/article/details/82745601
vim /usr/lib/rabbitmq/lib/rabbitmq_server-3.7.10/ebin/rabbit.app
將:{loopback_users, [<<”guest”>>]},
改為:{loopback_users, []},
原因:rabbitmq從3.3.0開始禁止使用guest/guest權限通過除localhost外的訪問
====登錄頁面修改密碼,重置角色,略
將node1上的.erlang.cookie傳輸到node2、node3,並保證權限一直
[root@linux-node1 ~]# scp /var/lib/rabbitmq/.erlang.cookie 192.168.56.12:/var/lib/rabbitmq/
#[root@linux-node1 ~]# scp /var/lib/rabbitmq/.erlang.cookie 192.168.56.13:/var/lib/rabbitmq/
先停止運行節點,然后以后台方式啟動 RabbitMQ Server(node1和node2分別執行):
[root@linux-node1 ~]# systemctl stop rabbitmq-server
[root@linux-node1 ~]# rabbitmq-server -detached
Warning: PID file not written; -detached was passed.
[root@linux-node2 ~]# systemctl stop rabbitmq-server
[root@linux-node2 ~]# rabbitmq-server -detached
Warning: PID file not written; -detached was passed.
然后我們以node1作為集群中心,在node2上執行加入集群中心命令(節點類型為磁盤節點):
[root@linux-node2 ~]# rabbitmqctl stop_app
[root@linux-node2 ~]# rabbitmqctl reset
[root@linux-node2 ~]# rabbitmqctl join_cluster rabbit@linux-node1
//默認是磁盤節點,如果是內存節點的話,需要加--ram參數
[root@linux-node2 ~]# rabbitmqctl start_app
查看集群的狀態(包含node1和node2節點):
[root@linux-node2 ~]# rabbitmqctl cluster_status
Cluster status of node 'rabbit@linux-node2' ...
[{nodes,[{disc,['rabbit@linux-node1','rabbit@linux-node2']}]},
{running_nodes,['rabbit@linux-node1','rabbit@linux-node2']},
{cluster_name,<<"rabbit@linux-node2">>},
{partitions,[]}]
#鏡像模式
[root@linux-node1 ~]# rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all","ha-sync-mode":"automatic"}'
Setting policy "ha-all" for pattern "^" to "{\"ha-mode\":\"all\",\"ha-sync-mode\":\"automatic\"}" with priority "0" ...
...done.
移除節點:
在主上:
rabbitmqctl -n rabbit@rabbitmq_1 forget_cluster_node rabbit@rabbitmq_2