使用RabbitMQ进行选择性路由

Igo*_*gor 3 amqp rabbitmq

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

1) big.yellow.rabbit
2) small.*.dog
3) small.*.*
4) *.*.cat
5) *.*.*
Run Code Online (Sandbox Code Playgroud)

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

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

上述键的示例:

big.yellow.rabbit -> 1) 
small.yellow.rabbit -> 3) 
small.white.cat -> 3)
big.grey.cat -> 4)
big.yellow.pig -> 5)
Run Code Online (Sandbox Code Playgroud)

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

谢谢.

scv*_*lex 6

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

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

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