RabbitMQ Exchange类型比较:主题与标题

时间:2014-06-09 21:57:27

标签: rabbitmq message-queue

我们正在重建我们的消息队列系统。在浏览RabbitMQ交换类型时,我注意到有两种可能的解决方案来实现路由消息的多播特性。

  1. 主题交流。通过设置主题交换和具有特定模式的路由密钥,消息将被路由到指定的队列。 I.E.产品。*。根据AMQP规范,这通常是实现Pub / Sub模式的交换类型。

  2. 标头交换。所谓的类固醇直接交换"。对于多播消息,它更加灵活,因为路由密钥被忽略,而每条消息都有" x-match"标头表示消息应该传递到哪些队列。每条消息都可以以不同方式动态路由。但是,这种交换类型似乎与Message Queue设计更紧密地结合在一起,因为消费者/生产者必须更多地了解目标队列。

  3. 所以问题是,有没有人有这两种交换类型的经验,并分享上述两种类型的优点/缺点的更多特征?谢谢!

    参考文献[1]:https://www.rabbitmq.com/tutorials/amqp-concepts.html

2 个答案:

答案 0 :(得分:3)

我已经使用了标题和主题交换,根据我的经验,标题交换更灵活,但在通过代码发送消息时,我们通常会这样做,因为正则表达式类型语法很容易使用主题交换。

您可以在此处详细了解: - http://codedestine.com/rabbitmq-headers-exchange/

http://codedestine.com/rabbitmq-topic-exchange/

答案 1 :(得分:0)

两个交易所实现了不同的路由算法。

Topic Exchange

  • 它将允许我们根据路由键中的通配符匹配有选择地路由消息。
  • 有效的表现

Headers Exchange

  • 它允许您匹配 AMQP 消息中的标头 路由键。
  • 它的运作方式与直接交易所相同 但性能要差得多。结果,它没有提供太多 现实世界的好处。