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