首先
我们在学习 RabbitMQ
的时候肯定会需要用到集群的,那么如何去搭建这个集群呢?这边提供一种 一主一从
的搭建方案,其他的搭建也是一样,到时候会点出来在哪里进行更改即可!首先我们要准备好一台配置好 Erlang + RabbitMQ
的服务器,至于怎么搭建这个服务器大家也可以查看我前几期的博客,那边写的很清楚!欢迎考古~
接着
第一步
我们必须确保我们的环境是可以运行的,输入命令:
ps aux|grep rabbitmq
或
systemctl status rabbitmq-server
去人没有问题了的话那么我们就可以先停掉!
systemctl stop rabbitmq-server
第二步
1、启动第一个结点 rabbit-1
sudo RABBITMQ_NODE_PORT=5672 RABBITMQ_NODENAME=rabbit-1 rabbitmq-server start &
注意:这里必须等到结点1启动完成
2、启动第二结点 rabbit-2
sudo RABBITMQ_NODE_PORT=5673 RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,15673}]" RABBITMQ_NODENAME=rabbit-2 rabbitmq-server start &
注意:这里必须等到结点2启动完成
如果说你需要搭建更多的从机的话那那就把上面的稍作修改,更改端口号,更改名字即可!!!!
3、搭建完之后我们验证启动
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
验证集群是否生效
sudo rabbitmqctl cluster_status -n rabbit-1
结果如下图:
最后配置web管理
首先打开web管理的权限
rabbitmq-plugins enable rabbitmq_management
接着我们将这个几个集群设置账号和密码及权限
rabbit-1
# 设置账号密码
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 ".*" ".*" ".*"
rabbit-2
# 设置账号密码
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 ".*" ".*" ".*"
多从机的话那么久以此类推下去即可!
接着我们去界面中登录,看到下面的界面那么就恭喜你 RabbitMQ 的集群就部署好了!
收工~