集群搭建
修改各节点主机名
vim /etc/hostname47.172.193.131 node147.172.193.132 node247.172.193.133 node3
修改host文件
vim /etc/hosts47.172.193.131 node147.172.193.132 node247.172.193.133 node3
Erlang Cookie同步
scp /var/lib/rabbitmq/.erlang.cookie root@node2:/var/lib/rabbitmq/.erlang.cookiescp /var/lib/rabbitmq/.erlang.cookie root@node3:/var/lib/rabbitmq/.erlang.cookie
启动MQ服务和Erlang虚拟机
rabbitmq-server -detached
集群节点加入(node1为例)
rabbitmqctl stop_app(停止RabbitMQ服务)rabbitmqctl reset(重置)rabbitmqctl join_cluster rabbit@node1rabbitmqctl start_app(启动RabbitMQ服务)rabbitmqctl cluster_status(查看集群状态)
创建管理员账户
rabbitmqctl add_user admin 123rabbitmqctl set_user_tags admin administratorrabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"rabbitmqctl list_users
节点集群解除
rabbitmqctl stop_app(停止RabbitMQ服务)rabbitmqctl reset(重置)rabbitmqctl start_app(启动RabbitMQ服务)rabbitmqctl cluster_statusrabbitmqctl forget_cluster_node rabbit@node2(node2脱离集群,在node1上执行)
镜像队列
如果集群某个节点不可用可能会造成消息丢失,消息发送之后到持久化成功存在短暂的刷盘时间。可以将队列镜像到集群的其他Broker节点上,如果集群某个节点失效了,队列能自动的切换到镜像中的另一个节点上保证服务的可用。
联邦交换机和联邦队列
实现节点间的数据同步,在每台机器上开启插件。rabbitmq-plugins enable rabbitmq_federationrabbitmq-plugins enable rabbitmq_federation_management联邦队列可以在多个Broker节点(集群)直接为单个队列提供负载均衡的功能,数据同步。node2主动连接node1,数据由node1同步到node2中。


Shovel
可以将源端的数据转移到目的端,实现数据同步。开启插件rabbitmq-plugins enable rabbitmq_shovelrabbitmq-plugins enable rabbitmq_shovel_management
