使用RabbitMQ进行选择性路由

时间:2012-04-01 17:06:26

标签: rabbitmq amqp

我有一些队列绑​​定到一个主题交换,例如使用路由键:

1) big.yellow.rabbit
2) small.*.dog
3) small.*.*
4) *.*.cat
5) *.*.*

我希望RabbitMQ选择只有一个队列来按照逻辑放置我的消息:

  • 重合标签的数量应尽可能大
  • 第一个标签的重合比第二个标签更重要......

上述密钥的示例:

big.yellow.rabbit -> 1) 
small.yellow.rabbit -> 3) 
small.white.cat -> 3)
big.grey.cat -> 4)
big.yellow.pig -> 5)

我得出的结论是,常见的交换类型(直接,主题,扇出,标题)对我没有帮助。我需要实现新的自定义类型。 我是对的吗?

感谢。

1 个答案:

答案 0 :(得分:6)

是的,您描述的路由逻辑不是由RabbitMQ中的任何默认交换类型实现的;你必须自己写。

您需要write一个RabbitMQ plugin。更具体地说,您需要编写自定义交换类型:您可以在Developer Tools页面上找到一堆示例。

如果您需要有关如何开始或卡住的任何提示,请在RabbitMQ-Discuss邮件列表上发布问题。 RabbitMQ开发人员阅读了该列表,并指出不要回答任何问题。