RabbitMQ集群安装 - 多机多实例
前置条件
在正式安装RabbitMQ机群之前,规划哪些节点安装实例。这里规划三台虚拟机,分别是:
- node01: 192.168.78.101
- node02: 192.168.78.102
- node03: 192.168.78.103
规划好虚拟机之后,需要在每台虚拟机上安装RabbitMQ实例,可以参考。
安装完成之后,在每台虚拟机上启动RabbitMQ服务。
同步Cookie
同步每台虚拟机上RabbitMQ的cookie文件,保证他们是一致的,cookie对于rabbitmq相当于密钥令牌,集群中的每个rabbitmq节点需要通过交换密钥令牌来获得相互认证。如果集群中节点的密钥不一致,就会报一下错误,主要报错信息就是授权失败。
[root@node2 -)# rabbitmqctl join_cluster rabbit@node1
Clustering node rabbit@node2 with rabbit@node1
Error: unable to connect to nodes [rabbit@nodel]: nodedown
DIAGNOSTICS
attempted to contact: [rabbit@nodel]
rabbit@nodel:
* connected to epmd (port 4369) on nodel
* epmd reports node 'rabbit' running on port 25672
* TCP connection succeeded but Erlang distribution failed
* Authentication failed (rejected by the remote node), please check the Erlang cookie
current node details:
- node name: 'rabbitmq-cli-53@node2'
- home dir: /root
- cookie hash: kLtTY75JJGZnZpQF7CqnYg==
不同的安装方式,cookie文件的路径不同:
- yum安装:/var/lib/rabbitmq/.erlang.cookie
- root用户源码编译/解压安装:/root/.erlang.cookie
- 普通用户源码编译/解压安装:/home/用户名/.erlang.cookie
也可以使用命令查看cookie文件的详细信息:
rabbitmq-diagnostics erlang_cookie_sources
从其中一台虚拟机上同步cookie文件到另外两台
scp /root/.erlang.cookie root@node02:/root/
scp /root/.erlang.cookie root@node03:/root/
组建机群
上面的步骤都成功后,在其中两台虚拟机上执行下面的命令就可以组建RabbitMQ集群了。这里是在node02 和 node03 上执行,使其加入 node01 上的RabbitMQ。
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@node01
rabbitmqctl start_app
执行成功后,在任意一台服务器上可以查看集群状态。
rabbitmqctl cluster_status
好了,在CentOS6中安装RabbitMQ机群就介绍到这里了。