我们正在重建我们的消息队列系统。在浏览RabbitMQ交换类型时,我注意到有两种可能的解决方案来实现路由消息的多播特性。
主题交流。通过设置主题交换和具有特定模式的路由密钥,消息将被路由到指定的队列。 I.E.产品。*。根据AMQP规范,这通常是实现Pub / Sub模式的交换类型。
标头交换。所谓的类固醇直接交换"。对于多播消息,它更加灵活,因为路由密钥被忽略,而每条消息都有" x-match"标头表示消息应该传递到哪些队列。每条消息都可以以不同方式动态路由。但是,这种交换类型似乎与Message Queue设计更紧密地结合在一起,因为消费者/生产者必须更多地了解目标队列。
所以问题是,有没有人有这两种交换类型的经验,并分享上述两种类型的优点/缺点的更多特征?谢谢!
参考文献[1]:https://www.rabbitmq.com/tutorials/amqp-concepts.html
答案 0 :(得分:3)
我已经使用了标题和主题交换,根据我的经验,标题交换更灵活,但在通过代码发送消息时,我们通常会这样做,因为正则表达式类型语法很容易使用主题交换。
您可以在此处详细了解: - http://codedestine.com/rabbitmq-headers-exchange/
答案 1 :(得分:0)
两个交易所实现了不同的路由算法。
Topic Exchange
:
Headers Exchange
: