【发布时间】:2014-04-10 07:42:49
【问题描述】:
在 Amazon VPC 中,我在两个节点上安装了 rabbitmq
在节点 1 上,我运行了以下命令
#Node 1
/etc/init.d/rabbitmq-server stop
rabbitmq-server -detached
rabbitmqctl start_app
rabbitmqctl set_policy HA '^(?!amq\.).*' '{"ha-mode": "all"}'
在节点 2 上,我运行了以下命令来设置集群
/etc/init.d/rabbitmq-server stop
rabbitmq-server -detached
rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@<PrivateIP>
rabbitmqctl start_app
rabbitmqctl set_policy HA '^(?!amq\.).*' '{"ha-mode": "all"}'
RabbitMQ 节点位于弹性负载均衡器后面。我运行了一个 java 程序来不断将消息推送到 rabbitmq。
案例 1:rabbitmqctl list-queues -- 当 java 程序将消息推送到队列时,显示队列名称和队列消息计数相同。
案例 2:我在节点 2 上停止了 rabbitmq,然后再次启动它。检查集群状态和队列消息计数。消息计数正确(节点 1 和节点 2 上均为 3330)
案例 3:当 java 程序将消息推送到队列时,我在节点 1 上停止了 rabbitmq。 我检查了节点 2 中的队列消息计数,计数为 70。 我在节点 1 上启动了 rabbitmq,然后检查队列数是 75。
我想设置一个 rabbitmq 高可用集群并确保没有消息丢失。我在 /etc/init.d/rabbitmq-server 中启用了 rabitmq start 上的 sync_queue。
如果您能指出,为什么消息计数从大约 3330 下降到 70,请不胜感激。还有什么是设置和确保 HA 的最佳方法。
【问题讨论】:
标签: amazon-ec2 rabbitmq