根据https://groups.google.com/forum/#!topic/rabbitmq-users/vvWAymjDww4,如果队列跨多个服务器(节点)镜像,发布者写入哪个队列并不重要 - RabbitMQ 将始终将消息转发到主节点(首次创建队列的节点)。
如果是这种情况,如果每条消息最终都会路由到同一个节点,那么将负载均衡器放在节点前面有什么意义?似乎主节点将始终承担整个负载。
我将放一个示例场景以使其易于理解:
基本上,一切都与服务可用性有关。当您连接到一个节点,并且您使用的队列不是主节点时,RabbitMQ 在内部将您重定向到主节点,这最终会在集群中创建大量互连。
但是如果主节点出现故障,RabbitMQ 会选择一个新节点,因此在那里拥有一个 LB 是一个很好的补充,客户端将重新连接到 LB 并将它重定向到一个工作实例。客户端的过程是透明的。
最后,根据您的用例,您可以做一些聪明的事情来确保客户端始终连接到主队列所在的实例,但这实际上取决于您的特定要求。
| 归档时间: |
|
| 查看次数: |
1639 次 |
| 最近记录: |