在单机环境下,配置RabbitMQ集群(以三个节点为例)
- 清理单机版中历史数据
rm -rf /var/lib/rabbitmq/mnesia
- 分别启动三个RabbitMQ节点
RABBITMQ_NODE_PORT=5672 RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,15672}]" RABBITMQ_NODENAME=rabbit rabbitmq-server -detached
RABBITMQ_NODE_PORT=5673 RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,15673}]" RABBITMQ_NODENAME=rabbit2 rabbitmq-server -detached
RABBITMQ_NODE_PORT=5674 RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,15674}]" RABBITMQ_NODENAME=rabbit3 rabbitmq-server -detached
注意事项
1、因为启用了Web管理插件,所有每个节点的Management也要指定不一样的监听端口,否则会因为端口冲突而节点启动失败。
2、如果不指定每个节点单独的插件监听节点,也可将插件先移除(2.7.0以前版本)或禁用(2.7.0及以后版本)。
- 以rabbit为主节点,其它两个节点为从节点,在从节点中执行以下命令:
rabbitmqctl -n rabbit2 stop_app
rabbitmqctl -n rabbit2 reset
rabbitmqctl -n rabbit2 join_cluster rabbit@`hostname -s`
rabbitmqctl -n rabbit2 start_app
rabbitmqctl -n rabbit3 stop_app
rabbitmqctl -n rabbit3 reset
rabbitmqctl -n rabbit3 join_cluster rabbit@`hostname -s`
rabbitmqctl -n rabbit3 start_app
可用join_cluster参数--disc或--ram指定是磁盘节点还是内存节点,具体可查看join_cluster命令帮助。
- 删除节点
rabbitmqctl forget_cluster_node rabbit3@`hostname -s`
- 查看集群状态
rabbitmqctl -n rabbit cluster_status
- 设置高可用集群
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
网友评论