0

我只是好奇发布和使用消息的最佳方式是什么,忽略了持久性、持久性和类似的东西,而是从集群中的网络角度来看?

如果我们通过打开到服务器 1 (s1) 的连接发布消息,但队列master-locator-node在服务器 2 (s2) 上,服务器必须将该消息从 s1 移动到 s2,对吗?

总是从我们连接的服务器的“本地”队列中消费是最佳选择,这意味着我们通过连接消费的所有队列都位于该服务器上,不是吗?

这是否过于复杂?还是最好总是向队列所在的服务器发布和消费?我每天要处理大约 3B 条消息,所以我试图尽可能地减少延迟和负载。

4

2 回答 2

1

是的,总是向队列主节点发布和消费是最佳的。您对连接到非主节点时发生的情况的理解是正确的。当然,这意味着您必须让您的应用程序知道这些信息(来自 HTTP API)。

如果您不担心消息丢失,那么在这种情况下几乎不需要集群。


注意: RabbitMQ 团队会监控邮件列表rabbitmq-users有时只会在 StackOverflow 上回答问题。

于 2018-11-30T14:56:35.363 回答
1

您忽略了正确指导的重要因素,例如持久性和消息大小。根据消息大小、持久性和工作负载,您有三个潜在的资源瓶颈 1) CPU 2) 网络 3) 存储。此外,根据每个队列上的客户端数量,还可能出现争用瓶颈。

于 2018-11-30T14:36:20.937 回答