RabbitMQ集群笔记
来源:互联网 发布:证券从业资格证知乎 编辑:程序博客网 时间:2024/06/07 09:37
1.服务器选择
HostName IP
node1 192.168.20.171
node2 192.168.20.172
node3 192.168.20.173
2.在三台服务器上分别修改配置
(1) 修改/etc/hosts
192.168.20.171 node1
192.168.20.172 node2
192.168.20.173 node3
(2) 修改/etc/sysconfig/network
HOSTNAME=node1 #node1服务器
HOSTNAME=node2 #node2服务器
HOSTNAME=node3 #node3服务器
(3) 设置hostname
hostname node1 #node1服务器
hostname node2 #node2服务器
hostname node3 #node3服务器
3.修改erlang.cookie,使三台服务器保持一致
3.1通过远程复制文件(scp)或者直接复制内容均是可以的
3.2erlang.cookie介绍
erlang.cookie是erlang实现分布式的必要文件,erlang分布式的每个节点上要保持相同的.erlang.cookie文件,同时保证文件的权限是400。
官方在介绍集群的文档中提到过.erlang.cookie一般会存在这两个地址:第一个是$home/.erlang.cookie;第二个地方就是/var/lib/rabbitmq/.erlang.cookie。
如果我们使用解压缩方式安装部署的rabbitmq,那么这个文件会在${home}目录下,也就是$home/.erlang.cookie。
如果我们使用rpm等安装包方式进行安装的,那么这个文件会在/var/lib/rabbitmq目录下。
4.每个节点上都安装好erlang和rabbitMQ,注意别启动rabbitMQ即第5步之后不执行(参考RabbitMQ快速入门.txt)
设置好erlang.cookie之后,后台启动rabbitmq-server
/usr/local/rabbitmq-3.6.6/sbin/rabbitmq-server start & 启动rabbitmq
查看各节点状态:/usr/local/rabbitmq-3.6.6/sbin/rabbitmqctl cluster_status
5、把node2、node3分别加入到集群node1中(rabbitmqctl stop_app ---仅关闭应用,节点不被关闭)
(1) node2
./rabbitmqctl stop_app
./rabbitmqctl join_cluster rabbit@node1
./rabbitmqctl start_app
(2) node3
./rabbitmqctl stop_app
./rabbitmqctl join_cluster rabbit@node1
./rabbitmqctl start_app
此时 node2 与 node3 也会自动建立连接;如果要使用内存节点,则可以使用
node2#./rabbitmqctl join_cluster --ram rabbit@node1 加入集群。
6、查看集群情况
./rabbitmqctl cluster_status
Cluster status of node rabbit@node3 ...
[{nodes,[{disc,[rabbit@node1,rabbit@node2,rabbit@node3]}]},
{running_nodes,[rabbit@node1,rabbit@node2,rabbit@node3]},
{cluster_name,<<"rabbit@node1">>},
{partitions,[]},
{alarms,[{rabbit@node1,[]},{rabbit@node2,[]},{rabbit@node3,[]}]}]
7.设置镜像队列策略
在任意一个节点上执行:#./rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
将所有队列设置为镜像队列,即队列会被复制到各个节点,各个节点状态保持一直。
完成这 7 个步骤后,RabbitMQ 高可用集群就已经搭建好了,最后一个步骤就是搭建均衡器。
8.安装并配置 HAProxy(未测试)
在192.168.20.174上安装 HAProxy,然后修改 /etc/haproxy/haproxy.cfg:
listen rabbitmq_cluster 0.0.0.0:5672
mode tcp
balance roundrobin
server node1 192.168.1.1:5672 check inter 2000 rise 2 fall 3
server node2 192.168.1.2:5672 check inter 2000 rise 2 fall 3
server node2 192.168.1.3:5672 check inter 2000 rise 2 fall 3
8.退出集群
例:在node3(退出节点)上执行
#./rabbitmqctl stop_app
#./rabbitmqctl reset
#./rabbitmqctl start_app
在主节点node1上执行
rabbitmqctl forget_cluster_node rabbit@node3
9.改变节点形式
./rabbitmqctl stop_app
./rabbitmqctl change_cluster_node_type disc/ram(二选一)
./rabbitmqctl start_app
10.集群重启
rabbitMQ集群重启时,最后一个挂掉的节点应该第一个重启,否则起不起来。
11.参考文章
http://www.cnblogs.com/taoge007/p/6208552.html
http://88250.b3log.org/rabbitmq-clustering-ha
http://www.cnblogs.com/grimm/p/5771038.html
HostName IP
node1 192.168.20.171
node2 192.168.20.172
node3 192.168.20.173
2.在三台服务器上分别修改配置
(1) 修改/etc/hosts
192.168.20.171 node1
192.168.20.172 node2
192.168.20.173 node3
(2) 修改/etc/sysconfig/network
HOSTNAME=node1 #node1服务器
HOSTNAME=node2 #node2服务器
HOSTNAME=node3 #node3服务器
(3) 设置hostname
hostname node1 #node1服务器
hostname node2 #node2服务器
hostname node3 #node3服务器
3.修改erlang.cookie,使三台服务器保持一致
3.1通过远程复制文件(scp)或者直接复制内容均是可以的
3.2erlang.cookie介绍
erlang.cookie是erlang实现分布式的必要文件,erlang分布式的每个节点上要保持相同的.erlang.cookie文件,同时保证文件的权限是400。
官方在介绍集群的文档中提到过.erlang.cookie一般会存在这两个地址:第一个是$home/.erlang.cookie;第二个地方就是/var/lib/rabbitmq/.erlang.cookie。
如果我们使用解压缩方式安装部署的rabbitmq,那么这个文件会在${home}目录下,也就是$home/.erlang.cookie。
如果我们使用rpm等安装包方式进行安装的,那么这个文件会在/var/lib/rabbitmq目录下。
4.每个节点上都安装好erlang和rabbitMQ,注意别启动rabbitMQ即第5步之后不执行(参考RabbitMQ快速入门.txt)
设置好erlang.cookie之后,后台启动rabbitmq-server
/usr/local/rabbitmq-3.6.6/sbin/rabbitmq-server start & 启动rabbitmq
查看各节点状态:/usr/local/rabbitmq-3.6.6/sbin/rabbitmqctl cluster_status
5、把node2、node3分别加入到集群node1中(rabbitmqctl stop_app ---仅关闭应用,节点不被关闭)
(1) node2
./rabbitmqctl stop_app
./rabbitmqctl join_cluster rabbit@node1
./rabbitmqctl start_app
(2) node3
./rabbitmqctl stop_app
./rabbitmqctl join_cluster rabbit@node1
./rabbitmqctl start_app
此时 node2 与 node3 也会自动建立连接;如果要使用内存节点,则可以使用
node2#./rabbitmqctl join_cluster --ram rabbit@node1 加入集群。
6、查看集群情况
./rabbitmqctl cluster_status
Cluster status of node rabbit@node3 ...
[{nodes,[{disc,[rabbit@node1,rabbit@node2,rabbit@node3]}]},
{running_nodes,[rabbit@node1,rabbit@node2,rabbit@node3]},
{cluster_name,<<"rabbit@node1">>},
{partitions,[]},
{alarms,[{rabbit@node1,[]},{rabbit@node2,[]},{rabbit@node3,[]}]}]
7.设置镜像队列策略
在任意一个节点上执行:#./rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
将所有队列设置为镜像队列,即队列会被复制到各个节点,各个节点状态保持一直。
完成这 7 个步骤后,RabbitMQ 高可用集群就已经搭建好了,最后一个步骤就是搭建均衡器。
8.安装并配置 HAProxy(未测试)
在192.168.20.174上安装 HAProxy,然后修改 /etc/haproxy/haproxy.cfg:
listen rabbitmq_cluster 0.0.0.0:5672
mode tcp
balance roundrobin
server node1 192.168.1.1:5672 check inter 2000 rise 2 fall 3
server node2 192.168.1.2:5672 check inter 2000 rise 2 fall 3
server node2 192.168.1.3:5672 check inter 2000 rise 2 fall 3
8.退出集群
例:在node3(退出节点)上执行
#./rabbitmqctl stop_app
#./rabbitmqctl reset
#./rabbitmqctl start_app
在主节点node1上执行
rabbitmqctl forget_cluster_node rabbit@node3
9.改变节点形式
./rabbitmqctl stop_app
./rabbitmqctl change_cluster_node_type disc/ram(二选一)
./rabbitmqctl start_app
10.集群重启
rabbitMQ集群重启时,最后一个挂掉的节点应该第一个重启,否则起不起来。
11.参考文章
http://www.cnblogs.com/taoge007/p/6208552.html
http://88250.b3log.org/rabbitmq-clustering-ha
http://www.cnblogs.com/grimm/p/5771038.html
1 0
- RabbitMQ集群笔记
- RabbitMQ 集群
- Rabbitmq集群
- RabbitMQ集群
- RabbitMQ 集群
- RabbitMQ集群
- RabbitMQ 集群测试
- rabbitmq windows集群
- RabbitMQ集群方案
- RabbitMQ集群配置
- Rabbitmq集群测试1
- [转]RabbitMq集群
- RabbitMQ集群环境部署
- Rabbitmq集群高可用
- RabbitMQ集群方案
- rabbitmq集群安装
- rabbitmq 集群功能讲解
- 搭建rabbitmq集群
- 最新Android API Level一览
- python: numpy -- zeros,ones,eyes函数
- jquery获取checkbox与radio的value
- Web基础之HTML入门
- 关于SystemUI状态栏显示黄色背景的问题
- RabbitMQ集群笔记
- iOS 自带三种提示框使用、UIAlertView以及UIAlertController的使用
- jmeter: JDBC Request (查询数据库获取数据库数据) 的使用
- Eclipse 解决启动慢
- linux 用户空间gpio加载FPGA
- trainCascadeObjectDetector
- Leetcode 227. Basic Calculator II
- HDMI转EDP芯片目前市面上兼容最好的桥接芯片NCS8803支持HDMI转EDP
- Android权限