RabbitMQ 高可用:在 Windows 搭建镜像集群

本文详细介绍RabbitMQ集群的搭建过程,包括配置Erlang cookie、节点加入、策略设置等关键步骤,并演示如何实现队列和交换机的高可用性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

理论仍然不解释,更多参考:Clustering Guide  , Highly Available Queues  , Load Balancing a RabbitMQ Cluster


开放端口:

5672	This is the main AMQP port that clients use to talk to the broker.
15672	The management web interface.
4369	Used by EPMD (Erlang  Port Mapper Daemon). This makes sure that the nodes can find each other.

绑定ip计算机名称:

C:\Windows\System32\drivers\etc\hosts 添加绑定如:
10.18.192.89 Itinside-89
10.18.192.194 ITinside-193

先备份 erlang.cookie ,目录或文件为:

%WINDIR% (c:\Windows\.erlang.cookie)
%HOMEDRIVE%%HOMEPATH% (C:\Users\%USERNAME%\.erlang.cookie )

将其中作为主节点的 c:\Windows\.erlang.cookie 覆盖目录 %WINDIR%  及 %HOMEDRIVE%%HOMEPATH%  下面的 .erlang.cookie 。文件可能隐藏,需设置显示隐藏文件。

在 Itinside-89 执行,管理员运行命令行!进入工具目录:

cd D:\Program Files\RabbitMQ Server\rabbitmq_server-3.6.6\sbin

添加节点:

rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@ITinside-193
rabbitmqctl start_app
rabbitmqctl cluster_status


完成后可在管理界面查看:


添加策略:

^kk : 表示队列名称以字符 “kk” 开头的所有队列。

ha-mode : 设置为 “all” ,表示镜像所有队列,即以名称 “kk” 开头的所有队列都设置镜像。(几个选项:all,exactly,nodes)

 ha-sync-mode: 设置为 "automatic" ,消息自动同步节点中的队列。重启节点需要等待自动同步完成。(manual or automatic)


添加策略使用命令添加如下(windows):

rabbitmqctl set_policy kk-all "^kk" "{""ha-mode"":""all"",""ha-sync-mode"":""automatic""}"

添加队列:

kk_queue 队列以 “kk” 开头,自动同步到集群各个节点,“Feature”会出现 “kk-all”。 “+1” 为绿色,表示队列已经同步到集群中的一个节点。

test_queue 为本地节点,创建时可选择在哪个创建在哪个节点上,不同步。(注:kk_queue 为 持久化队列


创建 exchange 及绑定队列:

创建 exchange 为 “testdirect” ,类型为 “direct”,exchange 在集群中自动同步到各个节点。

 “testdirect” 绑定集群队列 “kk_queue” , routing key 为 “rk”。(注:testdirect  为 持久化)


发布消息:

此处在 “testdirect” 中发布消息 , 指定 routing key 为 “rk” ,即发送消息到 “rk” 绑定的队列中。


查看队列消息:

在各节点上查看队列消息, 都可以看到队列 “kk_queue” 存储有一条消息记录。



即使关闭任意节点上的服务,其他节点仍然可以往队列中发送消息。当某节点联机后,队列自动同步该节点。所以,在集群中的多个节点下一步还可以做负载均衡。


其他参考:

RabbitMQ高可用方案总结

RabbitMQ镜像模式集群可用性测试总结


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值