RabbitMQ 高可用:在 Windows 搭建镜像集群
2017-02-17 21:47
531 查看
理论仍然不解释,更多参考: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 为本地节点,创建时可选择在哪个创建在哪个节点上,不同步。(注:[b]kk_queue 为 持久化队列)[/b]
创建 exchange 及绑定队列:
创建 exchange 为 “testdirect” ,类型为 “direct”,exchange 在集群中自动同步到各个节点。
“testdirect” 绑定集群队列 “kk_queue” , routing key 为 “rk”。(注:testdirect 为 持久化)
发布消息:
此处在 “testdirect” 中发布消息 , 指定 routing key 为 “rk” ,即发送消息到 “rk” 绑定的队列中。
查看队列消息:
在各节点上查看队列消息, 都可以看到队列 “kk_queue” 存储有一条消息记录。
即使关闭任意节点上的服务,其他节点仍然可以往队列中发送消息。当某节点联机后,队列自动同步该节点。所以,在集群中的多个节点下一步还可以做负载均衡。
其他参考:
RabbitMQ高可用方案总结
RabbitMQ镜像模式集群可用性测试总结
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 为本地节点,创建时可选择在哪个创建在哪个节点上,不同步。(注:[b]kk_queue 为 持久化队列)[/b]
创建 exchange 及绑定队列:
创建 exchange 为 “testdirect” ,类型为 “direct”,exchange 在集群中自动同步到各个节点。
“testdirect” 绑定集群队列 “kk_queue” , routing key 为 “rk”。(注:testdirect 为 持久化)
发布消息:
此处在 “testdirect” 中发布消息 , 指定 routing key 为 “rk” ,即发送消息到 “rk” 绑定的队列中。
查看队列消息:
在各节点上查看队列消息, 都可以看到队列 “kk_queue” 存储有一条消息记录。
即使关闭任意节点上的服务,其他节点仍然可以往队列中发送消息。当某节点联机后,队列自动同步该节点。所以,在集群中的多个节点下一步还可以做负载均衡。
其他参考:
RabbitMQ高可用方案总结
RabbitMQ镜像模式集群可用性测试总结
相关文章推荐
- 搭建高可用的rabbitmq集群 + Mirror Queue + 使用C#驱动连接
- Windows & RabbitMQ:集群(clustering) & 高可用(HA)
- 搭建高可用的rabbitmq集群 + Mirror Queue + 使用C#驱动连接
- Redis高可用集群-哨兵模式(Redis-Sentinel)搭建配置教程【Windows环境】
- OpenStack搭建高可用RabbitMQ集群
- windows单机搭建RabbitMQ集群
- centos7 rabbitmq集群搭建+高可用
- windows下rabbitmq(架构师必备神器)集群搭建
- 搭建高可用的rabbitmq集群 + Mirror Queue + 使用C#驱动连接
- 基于 Harbor 和 Cephfs 搭建高可用 Docker 镜像仓库集群
- Windows 2012 系统搭建高可用故障转移集群
- 搭建RabbitMQ集群之Windows单机版
- RabbitMQ-Windows单机集群搭建
- Windows 下搭建RabbitMQ集群
- centos7 搭建docker内运行rabbitmq,然后再镜像ha方案的完全教程,暂时一个宿主机只能运行一个docker的rabbitmq,但是集群 ha都正常
- 为OpenStack搭建高可用RabbitMQ集群(转)
- Redis高可用集群-哨兵模式(Redis-Sentinel)搭建配置教程【Windows环境】
- Haproxy+Keepalived搭建Weblogic高可用负载均衡集群
- RHEL6平台Keepalived+LVS+iSCSI+GFS搭建高可用负载均衡Web集群
- 搭建LVS+Keepalived高可用负载均衡集群