RabbitMQ 如何优化 publish/consume 集群中的消息?
RabbitMQ how to optimally publish/consume messages in a cluster?
我只是好奇发布和使用消息的最佳方式是什么,忽略持久性、持久性和类似的东西,而是从集群中的网络角度来看?
如果我们通过打开到服务器 1 (s1) 的连接发布消息,但队列 master-locator-node
在服务器 2 (s2) 上,服务器必须将该消息从 s1 移动到 s2,对吧?
最好始终从 "local" 到我们连接的服务器的队列消费,这意味着我们通过连接消费的所有队列都位于该服务器上,不是吗?
这是否过于复杂?或者最好始终向队列所在的服务器发布和使用?我每天处理大约 3B 条消息,因此我正在尝试尽可能减少延迟和负载。
您忽略了正确引导的重要因素,例如持久性和消息 size.Depending 关于消息大小、持久性和工作量您有三个潜在的资源瓶颈 1) CPU 2) 网络 3)贮存。此外,还可能存在争用瓶颈,具体取决于每个队列上的客户端数量。
是的,总是向队列主节点发布和消费是最佳的。您对连接到非主节点时发生的情况的理解是正确的。当然,这意味着您必须让您的应用程序知道此信息(来自 HTTP API)。
如果您不担心消息丢失,这种情况下几乎不需要集群。
注意: RabbitMQ 团队监控 the rabbitmq-users
mailing list 并且有时仅在 Whosebug 上回答问题。
我只是好奇发布和使用消息的最佳方式是什么,忽略持久性、持久性和类似的东西,而是从集群中的网络角度来看?
如果我们通过打开到服务器 1 (s1) 的连接发布消息,但队列 master-locator-node
在服务器 2 (s2) 上,服务器必须将该消息从 s1 移动到 s2,对吧?
最好始终从 "local" 到我们连接的服务器的队列消费,这意味着我们通过连接消费的所有队列都位于该服务器上,不是吗?
这是否过于复杂?或者最好始终向队列所在的服务器发布和使用?我每天处理大约 3B 条消息,因此我正在尝试尽可能减少延迟和负载。
您忽略了正确引导的重要因素,例如持久性和消息 size.Depending 关于消息大小、持久性和工作量您有三个潜在的资源瓶颈 1) CPU 2) 网络 3)贮存。此外,还可能存在争用瓶颈,具体取决于每个队列上的客户端数量。
是的,总是向队列主节点发布和消费是最佳的。您对连接到非主节点时发生的情况的理解是正确的。当然,这意味着您必须让您的应用程序知道此信息(来自 HTTP API)。
如果您不担心消息丢失,这种情况下几乎不需要集群。
注意: RabbitMQ 团队监控 the rabbitmq-users
mailing list 并且有时仅在 Whosebug 上回答问题。