基于RabbitMQ的选择性路由

基于RabbitMQ的选择性路由,rabbitmq,amqp,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 -&

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

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)
我得出的结论是,常见的交换类型(直接、主题、扇出、标题)对我没有帮助。我需要实现新的自定义类型。 我说得对吗


谢谢。

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

你需要一个兔子。更具体地说,您需要编写一个自定义的交换类型:您可以在页面上找到大量示例

如果您需要任何关于如何开始或陷入困境的建议,请在邮件列表上发布一个问题。RabbitMQ开发人员阅读了该列表,并强调不要留下任何未回答的问题