0

我有一个简单的 RabbitMQ 集群,有 2 个物理相同的 linux 节点:(CentOS,RabbitMQ 3.1.5,Erlang R15B,2GB Ram,CPU 1xCore)。打开节点的镜像和同步。

我有两个困扰我的问题:

  1. 在正常情况下,一切都很好,但是在重新启动其中一个节点(通过命令行中的 stop_app 和 start_app )后,整个集群对生产者和消费者变得不可用 - 我无法在同步期间从队列中生成或接收消息。这种情况正常吗?

  2. 在同步期间,我观察到从节点(重新启动的节点)上的 CPU 负载非常高(几乎 100%)。我测量了同步的速度——它非常低(200 万条消息的同步需要 3 个小时以上)。这很奇怪,因为生产这么多的东西需要的时间要少得多。这种情况也正常吗?

4

1 回答 1

2

我最近的任务是在工作中研究 RabbitMQ,因此深入研究了文档。

  1. 同步时就是这种情况。这是 RabbitMQ HA 文档的摘录。

    如果一个队列被设置为自动同步,它将在新的从属加入时同步——直到它这样做之前变得无响应。

  2. 如果正在从磁盘读取消息并将其持久化到磁盘(通过选择或通过内存限制),则可能存在开销。您可以在博客条目上看到一个图表(它是评论之前的最后一个图表),它表明在读取和写入这么多消息的队列时性能发生了变化。这些图表适用于旧版本的 RabbitMQ,但我没有看到任何更新的东西。
希望这可以帮助!

于 2013-10-02T13:11:42.390 回答