本文是基于linux系统实现rabbitmq集群搭建。默认已经安装完成,如果未安装,可以到RabbitMQ简单安装查看如何安装。
下文为单机模式集群搭建
检查是否处于运行状态
确保rabbitmq是正常运行的。
ps aux|grep rabbitmq
或者
systemctl status rabbitmq-server^
关闭服务
systemctl stop rabbitmq-server
单机多实例搭建
场景:假设有两个节点,分别为rabbit-1和rabbit-2。rabbit-1作为主节点,rabbit-2为从节点。
启动命令:
sudo RABBITMQ_NODE_PORT=5672 RABBITMQ_NODENAME=rabbit-1 rabbitmq-server start &
结束命令
rabbitmqctl -n rabbit-1 stop
启动第一个节点rabbit-1
sudo RABBITMQ_NODE_PORT=5672 RABBITMQ_NODENAME=rabbit-1 rabbitmq-server start &
启动第二个节点rabbit-2
需要注意的是,由于web端也有一个端口号,所以我们需要给web端重新指定端口号。
sudo RABBITMQ_NODE_PORT=5673 RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,15673}] -rabbitmq_stomp tcp_listeners [61614] -rabbitmq_mqtt tcp_listeners [1884]" RABBITMQ_NODENAME=rabbit-2 rabbitmq-server start &
验证
ps aux|grep rabbitmq
rabbit-1作为主节点
# 停止应用
sudo rabbitmqctl -n rabbit-1 stop_app
# 目的是清除节点上的历史数据(如果不清除,无法将节点加入到集群)
sudo rabbitmqctl -n rabbit-1 reset
# 启动应用
sudo rabbitmqctl -n rabbit-1 start_app
rabbit-2作为从节点
# 停止应用
sudo rabbitmqctl -n rabbit-2 stop_app
# 目的是清除节点上的历史数据(如果不清除,无法将节点加入到集群)
sudo rabbitmqctl -n rabbit-2 reset
# 将rabbit2节点加入到rabbit1集群中(server-node 服务器的主机名)
sudo rabbitmqctl -n rabbit-2 join_cluster rabbit-1@'server-node'
# 启动应用
sudo rabbitmqctl -n rabbit-2 start_app
选中的就是你服务器的主机名,自行修改。
root@后面的。
验证集群
sudo rabbitmqctl cluster_status -n rabbit-1
如果需要第三个几点,只需要重复rabbit-2节点的步骤即可。
web 监控
首先需要给两个节点添加用户及赋权。
rabbitmqctl -n rabbit-1 add_user admin admin
#操作权限
rabbitmqctl -n rabbit-1 set_user_tags admin administrator
#资源权限
rabbitmqctl -n rabbit-1 set_permissions -p / admin ".*" ".*" ".*"
rabbitmqctl -n rabbit-2 add_user admin admin
#操作权限
rabbitmqctl -n rabbit-2 set_user_tags admin administrator
#资源权限
rabbitmqctl -n rabbit-2 set_permissions -p / admin ".*" ".*" ".*"
创建用户之后我们便可以登录web端,如果是云服务器注意在安全组放行端口号。出现集群信息即代表成功,这种集群模式属于元数据共享模式,所以当我们在其中一个节点创建队列时,另一个节点也会自动创建队列。
如果其中一个节点宕机之后会发生什么呢?
我们可以手动关闭从节点,然后我们可以发现主节点中会显示从节点停止,但是交换机和队列还存在。
但是这种模式的话,如果我们手动关闭主节点,会发现从节点中的队列都停止了,所以这种集群模式我们在工作中不太常用。
多机部署集群
如果使用多个服务器进行集群的搭建,我们需要读取其中一个节点的cookie,并复制到其他节点(节点之间通过cookie确定是否可以通信)
cookie存放在/var/lib/rabbitmq/.erlang.cookie。
例如:主机名分别为rabbit-1、rabbit-2
- 逐个启动各节点
- 配置各节点的hots文件(vim /etc/hosts)
ip1:rabbit-1
ip2:rabbit-2
其他步骤参考单机模式。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/16863.html