目录
一、集群介绍
二、准备工作
三、集群搭建
🌴 创建节点
🌴 配置主从节点
🌵 rabbit-1操作作为主节点
🌵 rabbit2操作为从节点
四、Web监控
小结
一、集群介绍
当我们单台 RabbitMQ 服务器的处理消息的能力达到瓶颈时,此时可以通过 RabbitMQ 集群来进行扩展,从而达到提升吞吐量的目的。RabbitMQ 集群是一个或多个节点的逻辑分组,集群中的每个节点都是对等的,每个节点共享所有的用户,虚拟主机,队列,交换器,绑定关系,运行时参数和其他分布式状态等信息。本片文章主要是通过单机多实例来练习我们的集群搭建。
二、准备工作
(1)我们务必在服务器安全组那边打开以下端口:
5672,15672,5673,15673
(2)其次为端口打开防火墙:
firewall-cmd --zone=public --add-port=15672/tcp --permanent
firewall-cmd --zone=public --add-port=5672/tcp --permanent
firewall-cmd --zone=public --add-port=15673/tcp --permanent
firewall-cmd --zone=public --add-port=5673/tcp --permanent
(3)重启防火墙:
firewall-cmd --reload
三、集群搭建
🌴 创建节点
场景:有两个rabbitmq节点,分别为rabbit-1, rabbit-2,rabbit-1作为主节点,rabbit-2作为从节点。
我们先关闭我们的rabbitmq服务:
systemctl stop rabbitmq-server
创建并启动第一个结点rabbit-1
sudo RABBITMQ_NODE_PORT=5672 RABBITMQ_NODENAME=rabbit-1 rabbitmq-server start &
解释:
RABBITMQ_NODE_PORT:端口号
RABBITMQ_NODENAME:节点名称
创建并启动第二个节点rabbit-2
sudo RABBITMQ_NODE_PORT=5673 RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,15673}]" RABBITMQ_NODENAME=rabbit-2 rabbitmq-server start &
解释:
RABBITMQ_NODE_PORT:端口号
RABBITMQ_NODENAME:节点名称
RABBITMQ_SERVER_START_ARGS:进行覆盖我们的Web端口15673
验证是否启动成功:
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
🌵 rabbit2操作为从节点
# 停止应用
> 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
现在我们的主从节点就已经搭建好了,我们输入一下命令进行验证:
sudo rabbitmqctl cluster_status -n rabbit-1
集群已经搭建好了。
四、Web监控
为了能够使用Web管理界面,我们需要两个节点添加用户并赋予权限。
rabbit-1节点:
rabbitmqctl -n rabbit-1 add_user yixin 123456
rabbitmqctl -n rabbit-1 set_user_tags yixin administrator
rabbitmqctl -n rabbit-1 set_permissions -p / yixin ".*" ".*" ".*"
rabbit-2节点:
rabbitmqctl -n rabbit-2 add_user admin 123456
rabbitmqctl -n rabbit-2 set_user_tags admin administrator
rabbitmqctl -n rabbit-2 set_permissions -p / admin ".*" ".*" ".*"
现在我们可以去访问Web管理界面了。
rabbit-1:http://服务器Ip地址:15672/
rabbit-2:http://服务器Ip地址:15673/
现在我们利用刚刚添加的用户名和密码登录,进入页面:
可以发现,确实已经绑定了这两个节点。
我们在rabbit-1这边进行创建队列queue1:
接着我们去查看rabbit-2节点:
可以发现,现在这两个已经是主从关系了,我们在rabbit-1实行的操作都能够自动映射到rabbit-2节点。