【问题标题】:Is it possible to define a "random" rabbitmq queue binding?是否可以定义“随机”rabbitmq 队列绑定?
【发布时间】:2014-03-30 00:24:03
【问题描述】:

我正在设想一种配置,其中一个交换绑定到多个队列。这些绑定中的每一个都是唯一的,因此针对特定的消息。但是,有些,也许是大多数时候,我希望传入的消息随机分布在队列中。我目前的想法是让发布者从选项中随机选择路由密钥。然而,这需要发布者对可用的绑定类型有一定的了解。如果在交易所层面进行随机选择会更好。

是否可以指定一个路由键,以便交换机从可用的队列绑定中随机选择?

谢谢

【问题讨论】:

  • 我很好奇这个用例是什么?
  • 这个想法是提供一个交换,用户可以向其发布 SQL INSERT 和 UPDATE 查询。交易所后面有多个队列,每个队列都有一个附加的消费者,用于对数据库执行查询。希望是通过利用数据库的线程来提高吞吐量。交换器和队列之间的随机绑定将允许传入的查询均匀地分布在队列集合中。这反过来将在数据库线程之间平均分配查询。就是这么想的。
  • 如果关键是您可以在数据库中拥有许多线程,并且您希望它们处理来自您的队列的多个事件。为什么不让所有数据库线程连接到一个队列。队列将以循环方式将消息分发给每个线程中的消费者。
  • 我最终会到达那里。目前,我使用的 db 库不支持对 db 的异步访问,因此我需要每个 db 句柄一个进程。
  • 那仍然不代表你不能使用我的建议

标签: rabbitmq


【解决方案1】:

可以为 RabbitMQ 定义自己的交换类型。因此,您可以建立一个完全符合您需求的交易所。 RabbitMQ Random Exchange 似乎有您要求的行为。但是,我没有这方面的经验。

【讨论】:

  • 感谢您的指点。我会尝试一下,看看它是否能提供所需的效果。
猜你喜欢
  • 2022-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-10
  • 1970-01-01
  • 2020-04-30
  • 1970-01-01
  • 2011-05-14
相关资源
最近更新 更多