
Centos7搭建高可用的RabbitMq集群
环境准备
在三台CentOS7
中搭建好Rabbitmq
,如果不会搭建请参考:https://www.tnblog.net/hb/article/details/5594
添加域名地址
我们通过ifconfig
查看这三台系统的ip
地址,并将他们的关系列了一张表出来
系统名 | 描述 |
---|---|
10.211.55.4 |
为Master 服务器,名称为rabbitmqmaster |
10.211.55.6 |
为Slave 服务器,名称为slaverabbitmq2 |
10.211.55.5 |
为Slave 服务器,名称为slaverabbitmq1 |
所以我们将他们通过hosts
的方式更好的做出区分。通过vim /etc/hosts
的方式对每一台机器的末尾都添加如下代码(请注意这里要填写的是你自己的ip
,添加好后不会立即生效需要执行reboot
命令重启后才能生效)。
10.211.55.4 rabbitmqmaster
10.211.55.5 rabbitmqslave1
10.211.55.6 rabbitmqslave2
关闭防火墙
三台机子重启后我们会发现防火墙都是,开着的因此我们需要通过systemctl stop firewalld.service
将防火墙给关闭掉。(我这里防火墙都管好了)
设置Erlang Cookie
在UNIX系统上,cookie通常位于/var/lib/rabbitmq/.erlang.cookie
(由服务器使用)和$HOME/.erlang.cookie
(由CLI工具使用)中。请注意,由于$HOME
的值因用户而异,因此有必要为每个将使用CLI工具的用户放置cookie文件的副本。这适用于非特权用户
和root
。我这里呢是用的root
用户所以Cookie
在/root/.erlang.cookie
。(即使你把这个文件给删除了运行rabbitmq-server
也会再次生成新的.erlang.cookie
的)
我们在每一台机器上都去查看一下我们的.erlang.cookie
发现他们并不相同,但Rabbitmq
要求集群中的每个RabbitMQ节点都使用相同的.erlang.cookie
值。所以我们这里将所有的节点修改为rabbitmqmaster
的cookie
。
修改cookie权限
将三台系统上的.erlang.cookie
的权限改为400
。
chmod 400 /root/.erlang.cookie
集群管理
熟悉命令
在这之前我希望大家能了解一下如下这些命令,帮助你更好的掌握集群的管理。(在这里我们最好在源路径下进行操作)
命令 | 描述 |
---|---|
rabbitmqctl cluster_status |
查看集群状态 |
rabbitmqctl join_cluster rabbit@rabbit2 |
从集群中添加rabbit@rabbit2 节点(默认是[disk]磁盘节点) |
rabbitmqctl join_cluster --ram rabbit@rabbit1 |
从集群中删除rabbit@rabbit1 内存[ARM]节点 |
rabbitmqctl forget_cluster_node rabbit@rabbit1 |
从集群中删除rabbit@rabbit1 节点 |
rabbitmqctl change_cluster_node_type disc |
在集群中把当前节点变成一个磁盘[disk]节点 |
rabbitmqctl change_cluster_node_type ram |
在集群中把当前节点变成一个内存[ARM]节点 |
Rabbitmq-diagnostics check_running |
运行状况检查 |
Rabbitmq-diagnostics ping |
运行状况检查 |
启动Master节点
好接下来就好办事了。在rabbitmqmaster
机器上在源目录下
中通过./rabbitmq-server
命令启动RabbitMq
,然后打开另外一个窗口也在源目录下
用./rabbitmqctl cluster_status
查看集群情况,以及集群节点的名称。
我们看到集群节点的名称为rabbit@rabbitmqmaster
,但现在还没有node
节点。
添加Slave节点
在源目录
下通过./rabbitmq-server
命令启动RabbitMq
。然后打开另外一个窗口执行./rabbitmqctl stop
命令停止节点,执行./rabbitmqctl join_cluster rabbit@rabbitmqmaster
加入到集群节点中去,最后通过./rabbitmqctl start
启动Rabbitmq
然后按照如上步骤在每一台从机上面进行添加就好了。
添加用户
# 创建一个用户名为bob,密码为bob的用户
$ ./rabbitmqctl add_user bob bob
# 设置用户权限为超级管理员
$ ./rabbitmqctl set_user_tags bob administrator
# 授权远程访问
$ ./rabbitmqctl set_permissions -p / admin "." "." ".*"
最后在Web上查看
访问你的集群IP地址:{IP}:15672
我们发现他们都是disc
磁盘存储,所以我们也可以通过命令来进行修改本机在集群中是什么样的存储类型
添加
ARM
存储
./rabbitmqctl stop
./rabbitmqctl join_cluster --arm rabbit@rabbitmqmaster
./rabbitmqctl start
修改本地为
ARM
存储
在确保该集群节点没有被关闭的情况下执行如下命令。
./rabbitmqctl stop
./rabbitmqctl change_cluster_node_type ram
./rabbitmqctl start
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739

