Azure 服务总线中的多个相同类型的消息
Multiple messages of the same type in Azure Service Bus
我正在尝试了解 Azure 服务总线功能。我有一个应用程序部署到不同的环境(开发、测试、暂存等)。据我所知,每条总线只能有一种消息类型?这是否意味着要支持每个环境,我需要一个单独的服务总线实例?我正在使用 Masstransit,因为它需要 运行 的标准版本服务,我每个月都必须为每个实例支付大笔费用。有什么解决方法吗?使用 RabbitMQ 是我唯一的选择吗?
看起来你在这里混合了多种东西。更具体地说 - MassTransit 拓扑和 Azure 服务总线服务。如果将多个环境的端点(例如 test
和 prod
)部署到同一个 Azure Servie Bus 命名空间,它显然会发生冲突,因为 MassTransit 将使用端点所需的相同实体 test
和 prod
.
取而代之的是,您应该为每个环境使用一个命名空间。 IE。创建 2 个命名空间(例如 project-test.servicebus.windows.net
和 project-prod.servicebus.windows.net
)。通过这种方式,您可以部署将创建相同实体的相同 MassTransit 端点,但它们将按命名空间隔离。
关于费用问题 - 在标准层,您需要为服务使用费(加上所有消息交易,需要明确说明)支付月费,而不是您创建的命名空间数量。
我正在尝试了解 Azure 服务总线功能。我有一个应用程序部署到不同的环境(开发、测试、暂存等)。据我所知,每条总线只能有一种消息类型?这是否意味着要支持每个环境,我需要一个单独的服务总线实例?我正在使用 Masstransit,因为它需要 运行 的标准版本服务,我每个月都必须为每个实例支付大笔费用。有什么解决方法吗?使用 RabbitMQ 是我唯一的选择吗?
看起来你在这里混合了多种东西。更具体地说 - MassTransit 拓扑和 Azure 服务总线服务。如果将多个环境的端点(例如 test
和 prod
)部署到同一个 Azure Servie Bus 命名空间,它显然会发生冲突,因为 MassTransit 将使用端点所需的相同实体 test
和 prod
.
取而代之的是,您应该为每个环境使用一个命名空间。 IE。创建 2 个命名空间(例如 project-test.servicebus.windows.net
和 project-prod.servicebus.windows.net
)。通过这种方式,您可以部署将创建相同实体的相同 MassTransit 端点,但它们将按命名空间隔离。
关于费用问题 - 在标准层,您需要为服务使用费(加上所有消息交易,需要明确说明)支付月费,而不是您创建的命名空间数量。