1

我们的应用程序由 EC2 实例集群支持。其中之一是运行 RabbitMQ,所有实例都从/向消息队列读取和写入消息。

它工作得很好,直到昨天我们的流量激增。消息系统开始出现故障:服务能够创建队列,但它们无法写入或读取消息。

它开始间歇性地发生,然后一直发生。

我重新启动了 RabbitMQ,但它没有帮助。重新启动实例:也没有帮助。我最终停止了整个堆栈,然后再次启动它。过了一会儿,事情又恢复了正常。

据我所知(但我不确定),问题是实例无法相互通信(RabbitMQ 在特定端口上向其他 TCP 发送消息)。

我担心它会再次发生,因为我不确定是什么修复了它。我什至不知道在哪里看。

  • 如果流量过多,AWS 是否会限制/限制实例之间的通信?

  • 安全组是否可能开始失败(要使 RabbitMQ 正常工作,您需要打开特定的 TCP 端口)

  • 还有其他建议吗?

4

1 回答 1

0

如果 RabbitMQ 正在限制生产者,它应该出现在日志中。特别是当 RabbitMQ 决定限制发布者以防止内存或磁盘空间耗尽时。正如@zaq178miami 指出的那样,请参阅此链接:http ://www.rabbitmq.com/memory.html

于 2014-07-29T14:48:40.380 回答