- 操作系统Ubuntu 16.04.1
- 搭建集群前,请先安装RabbitMQ,安装教程请参考上篇文章。
1. 准备
- 准备三台机器
机器 | 名称 |
---|---|
192.168.16.6 | VM-16-6-ubuntu |
192.168.16.5 | VM-16-5-ubuntu |
192.168.16.9 | VM-16-9-ubuntu |
在这三台机器上安装RabbitMQ,安装教程请参考上篇文章。
2. 同步hosts
RabbitMQ是通过机器名进行通信
修改host文件sudo vi /etc/hosts
,三台机器均配置
#rabbitmq
192.168.16.6 VM-16-6-ubuntu
192.168.16.5 VM-16-5-ubuntu
192.168.16.9 VM-16-9-ubuntu
3. 同步 erlang.cookie
RabbitMQ基于erlang进行分布式通信,一个集群内的.erlang.cookie必须完全一致。
.erlang.cookie文件位置/var/lib/rabbitmq/.erlang.cookie
这里我们把其中一台机器上的cookie文件同步到其他两台上去
sudo scp /var/lib/rabbitmq/.erlang.cookie ubuntu@192.168.16.9:/home/ubuntu/
sudo scp /var/lib/rabbitmq/.erlang.cookie ubuntu@192.168.16.5:/home/ubuntu/
分别进入到另外两台机器上执行以下命令:
sudo cp .erlang.cookie /var/lib/rabbitmq/.erlang.cookie
重启三台机器的RabbitMQ
sudo service rabbitmq-server restart
如果你的root可以远程登录,那同步文件的过程就可以稍微简单些
4. 组成集群
集群节点分为磁盘节点(默认)和内存节点。我们把VM-16-6-ubuntu
和VM-16-5-ubuntu
作为磁盘节点,VM-16-9-ubuntu
作为内存节点
我们以VM-16-6-ubuntu
作为机器主节点,让VM-16-5-ubuntu
和VM-16-9-ubuntu
加入VM-16-6-ubuntu
的集群
- 在
VM-16-5-ubuntu
上执行:
sudo rabbitmqctl stop_app
sudo rabbitmqctl join_cluster --disc rabbit@VM-16-6-ubuntu
sudo rabbitmqctl start_app
--disc
代表以磁盘节点的方式加入集群
- 在
VM-16-9-ubuntu
上执行:
sudo rabbitmqctl stop_app
sudo rabbitmqctl join_cluster --ram rabbit@VM-16-6-ubuntu
sudo rabbitmqctl start_app
--ram
代表以内存节点的方式加入集群
通过以下命令可以查看集群的状态
sudo rabbitmqctl cluster_status
组成集群后,节点会记住集群相关信息。以后重启节点时,不需要再次执行以上命令
5. 启用manager ui
切换到root账号,来启用manager ui插件,三台机器均执行以下命令
rabbitmq-plugins enable rabbitmq_management
rabbitmq-plugins
命令必须使用root账号
6. 创建新账号
创建的账号会在集群中自动同步
创建mq
账号
sudo rabbitmqctl add_user mq mq123456
为账号设置tag
sudo rabbitmqctl set_user_tags mq administrator
为账号设置权限
sudo rabbitmqctl set_permissions -p "/" mq ".*" ".*" ".*"
查看当前所有账号
sudo rabbitmqctl list_users
为安全起见,删除默认的guest账号
sudo rabbitmqctl delete_user guest
7. 修改配置文件
在所有集群机器上创建rabbitmq配置文件,sudo vi /etc/rabbitmq/rabbitmq.config
,内容如下
[
{rabbit,[
{tcp_listeners, [5672]},
{loopback_users, ["mq"]}
]}
].
loopback_users
是用来配置可远程访问的账号的rabbitmq.config
的更多配置,大家可以参考/usr/share/doc/rabbitmq-server/rabbitmq.config.example.gz
,里面有对各个属性的官方说明
重启RabbitMQ
sudo service rabbitmq-server restart
7. 可视化
通过新建的账号可以登录管理页面,三台机器的地址随便登录哪个都可以。
如:192.168.16.6:15672
现在通过页面可以发现,VM-16-9-ubuntu
为内存节点
![](https://img.haomeiwen.com/i1748661/1766ff1c09e7a77a.png)
网友评论