gpt4 book ai didi

masstransit - MassTransit 创建的 RabbitMQ 拓扑

转载 作者:行者123 更新时间:2023-12-01 14:16:14 26 4
gpt4 key购买 nike

我正在尝试理解 topology of queues并交换 MT 在 RabbitMQ 中创建的。

我不能得到这两个陈述:

  • we generate an exchange for each queue so that we can do direct sends to the queue. it is bound as a fanout exchange (is it about sending vs publishing?)

  • control queues are exclusive and auto-delete - they go away when you go away and are not shared.



MT为什么需要直接发送消息?这是否与 control queues 相关? MT内部使用?

也没有提及 dead letter queue ,这是否意味着 MT 不支持开箱即用?
哎呀,看错地方了。它是 here .

最佳答案

Michael Aldworth 在他出色的 MassTransit Send vs. Publish 中详细描述了这一点。博客文章。

本质上,对于每个 MT 端点,您都会得到一个交换队列对,它以 queueName 命名。端点配置中的参数值。另一方面,主题是以消息合约完整类型名称命名的 RabbitMQ 交换。

发布

您向主题发送消息,这意味着消息类型交换。 MassTransit 在启动时创建消息类型交换和队列名称交换之间的绑定(bind)。以这种方式订阅在 RabbitMQ 级别上工作。发布者永远不知道谁会收到发布的消息,如果有人的话。

Publishing

发送

但是,发送时,您需要指定接收方地址。通过这样做,您指示 MassTransit 将消息直接传递到队列名称交换。这里涉及的消息类型交换和队列名称交换之间没有绑定(bind)。因此,即使目标服务上没有此类消息的消费者,消息也会被传递。在这种情况下,消息将被移动到死信队列(queue-name_Skipped)。

enter image description here

关于masstransit - MassTransit 创建的 RabbitMQ 拓扑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37477565/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com