gho*_*ago 38 messaging message-queue amqp publish-subscribe rabbitmq
我一直在为我的公司评估消息传递技术,但我对几个术语之间的概念差异感到非常困惑:
发布/订阅与多播与扇出 我正在使用以下定义:
这些定义是对的吗?或者Pub/Sub模式和组播,直接,扇出等方式来实现模式?
我正在尝试将开箱即用的RabbitMQ定义应用到我们的架构中,但我现在只是试图为我们的应用程序编写规范.
请有人可以告诉我,我是否正确?
Mic*_*lon 40
我对你选择的三个术语进行比较感到困惑.在RabbitMQ中,Fanout和Direct是交换类型.Pub-Sub是一种通用的消息传递模式,但不是交换类型.你甚至没有提到第三个也是最重要的交换类型,即Topic.实际上,只需通过使用相同的绑定密钥声明多个队列,就可以在Topic交换上实现Fanout行为.您可以通过将队列声明*为通配符绑定键来定义主题交换上的直接行为.
Pub-Sub通常被理解为一种模式,其中应用程序发布由多个订阅者消费的消息.
使用RabbitMQ/AMQP时,务必记住消息始终发布到交换机.然后交换路由到队列.队列向订阅者发送消息.交换的行为很重要.在主题交换中,来自发布者的路由密钥与来自订户的绑定密钥匹配,以便做出路由决定.绑定密钥可以具有通配符模式,这进一步影响路由决策.可以使用报头交换类型基于消息报头的内容来完成更复杂的路由
RabbitMQ不保证消息的传递,但是您可以通过选择正确的选项(传递模式= 2表示持久性消息)来确保传递,并在运行应用程序之前声明交换和队列,以便不丢弃消息.
| 归档时间: |
|
| 查看次数: |
29983 次 |
| 最近记录: |