考虑一组N多个订户,所有订户都使用相同的队列名称和路由密钥值连接到直接交换。这将创建一个负载平衡系统,其中入站消息将循环发送给其中一个订户。这对于处理横向扩展问题非常有效,因为可以在负载增加时添加更多订户,以后可以在必要时撤消。
现在考虑能够向该层中的所有订户发送消息的要求,而不知道有多少(例如“重置您的状态”或“立即关闭”管理消息)。在rabbitmq有什么办法吗?如果这不可能,有更好的方法吗?
我的环境是使用amqplib的Python。
答案 0 :(得分:2)
如果我理解正确,这是您的设置:
这非常适合向任意订阅者发送消息(从而实现排序负载平衡),但您希望能够向所有订阅者发送一些消息。
您可以通过扇出交换和每个订户的额外队列来执行此操作: