RabbitMq是否从交换机到队列循环?
我目前正在评估消息队列系统,而RabbitMq似乎是一个很好的候选人,所以我正在进一步研究它。RabbitMq是否从交换机到队列循环?
为了给出一个小小的上下文,我正在寻找一种类似交换负载平衡的消息发布到多个队列。我不想复制这些消息,所以扇出交换不是一种选择。
另外我之所以想要有多个队列vs一个队列来处理消费者的循环,是因为我不希望我们的单点故障处于队列级别。
听起来像我可以在发布端添加一些逻辑来通过编辑路由键并具有适当的绑定来模拟该行为。但这是一种被动的方法,它不会考虑每个队列中消息消耗的速度,如果该队列的消费者应用程序已经死亡,则可能导致填充一个队列。
我正在寻找一个更主动的方式从交换实体方面,这将决定根据每个队列大小或性质的某些事情发送下一个消息的位置。
我阅读了关于Alice和可用的RESTful API,但这似乎是一种实施快速路由决策的重型解决方案。
任何人都知道如果交换队列之间的循环是可行的w/RabbitMQ呢?谢谢。
在AMQP模型中交换通常是无状态的,尽管现在已经有了一些有状态交换的实验,现在有一个管理RabbitMQ插件的系统和提供新的实验交换类型。
没有什么能够完成你想要的,我不认为,尽管我不完全确定我理解这个要求。除了单点故障点之外,还有一个单独的队列让工作人员读取它解决你的问题?如果是这样,那么你的问题就减少到配置HA配置中的RabbitMQ,允许你使用该解决方案。有几种方法可以做到这一点:或者使用HALinux和共享存储来获得主动/被动HA的快速故障转移,或者在客户端上设置多个并行代理和重复数据删除,可能使用redis或类似的方法。
我建议在rabbitmq-discuss邮件列表上再次提出您的问题,在邮件列表中有更多人可以提供建议,以及讨论可以存档为后代。
感谢您的帮助。目前这是一个很好的工作,因为我只处于评估阶段。 – Lancelot 2010-04-14 16:45:20
一个内置的方式,你可以做的共享形式交换到队列形式,但不完全循环,是一致的哈希。 rabbitmq_consistent_hash_exchange
怎么过 https://medium.com/@eranda/rabbitmq-x-consistent-hashing-with-wso2-esb-27479b8d1d21
纸来解释,它把队列在一个圆上的加权分布,然后通过发送随机路由键就会发送到最近的队列。 http://www8.org/w8-papers/2a-webserver/caching/paper2.html
一旦我们在生产中测试了一个单一的队列,我们就抨击了一个规模问题。单个队列是单线程的。它跟不上我们的负荷。我们正在寻找最佳实践,以循环法分发工作 – 2013-10-14 15:37:04