azure - 公共(public)交通和多个公交车实例

标签 azure masstransit

根据 MT 文档,每个总线实例应具有不同的队列名称。

我是否可以假设以下是正确的配置? MT multiple buses

什么将 WebApi 和后端队列连接在一起?

考虑更高级的场景

MT combined with local transport

当我设计后端管道以使用消息处理时,我可以稍后对其进行切片并让它很容易地通过有线传输使用。问题是,我可以以某种方式配置 MT,以便 Azure 配置的总线将消息中继到配置了本地传输的总线吗?

最佳答案

我将在 MassTransit v3 的背景下回答这个问题,它支持 Azure 服务总线和 RabbitMQ。如果您要使用 Azure,我强烈推荐使用 v3,而不是 v2 的传输。

首先,关于请求。它们应该被发送,而不是出版。它们通常是自然的命令,而不是事件。我看到人们发布请求的唯一原因是他们没有服务的端点地址。因此了解端点有很大帮助。

其次,在您的示例中,每个 WebAPI 实例都应该有自己的队列来接收响应,因为它们会发送回请求者。使用 MT3,每个 IBus 实例都有一个独特的自动删除队列,该队列就是为此目的而设置的,用于处理来自请求的响应。

GitHub 上的 MassTransit 存储库中有一个示例 Sample-RequestResponse,它展示了如何使用 RabbitMQ 进行设置。 Azure 服务总线的情况大致相同。

将所有内容组合在一起的“结构”是虚拟主机(在 RabbitMQ 中)或命名空间(在 ASB 中)。主题和队列之间的连接决定了它们如何一起工作以形成逻辑总线

关于azure - 公共(public)交通和多个公交车实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31722301/

相关文章:

azure - 数据在 Azure 时序洞察中同时进入热存储和冷存储

azure - 自动缩放如何与 Azure Web 应用程序配合使用?

asp.net-mvc - 通用 SSO 解决方案

azureservicebus - MassTransit 命令使用者创建一个主题。它是否正确?

佐贺市的 MassTransit 内存发件箱

c# - MassTransit 事务性发布

c# - MassTransit 实现 : sometimes message not received

c# - 通过记录对象的新实例更新 TableServiceContext 中的记录?

azure - 将 Python 日志记录设置为 Azure Blob,但在那里找不到日志文件

c# - 如何覆盖 MassTransit 默认交换和队列拓扑约定?