【问题标题】:NServiceBus on-premise/Azure hybrid setupNServiceBus 本地/Azure 混合设置
【发布时间】:2018-03-19 12:27:04
【问题描述】:

我目前有一个使用 NServiceBus 和 MSMQ 的本地设置。有一个 ServiceControl 实例,它接收所有错误和审计消息。

现在我正在做一个新项目,它将使用 Azure 进行托管,即我将使用 RabbitMQ 作为 tansport 在 Azure 中托管各种 NServiceBus 端点(可能使用 Kubernetes 或 Service Fabric),并且我希望 Azure 端点与本地端点,反之亦然。

我偶然发现了社区驱动的项目 NServiceBus.Bridge,它似乎对这种情况很有用。但我有一些不确定性。

  • 考虑到我所描述的要求,这是一个好方法吗?

  • 托管 Bridge 端点的最佳位置是本地还是 Azure?或者我是否需要在每个位置都有一个 Bridge 端点,因为我希望能够在每个方向上发送和发布消息?

  • 我如何处理错误、审计和控制(例如 Heartbeat)消息,因为它们是使用特定的 NServiceBus 配置(SendFailedMessagesTo、AuditProcessedMessagesTo 和 HeartbeatPlugin)设置的,因此似乎无法发送过来桥?我认为,如果消息可以在我的本地 ServiceControl 实例中结束,那将是最佳选择,这样我就可以将所有错误/审计数据放在一个地方,从而能够在 ServiceInsight 中查看完整的消息流。

【问题讨论】:

    标签: nservicebus


    【解决方案1】:

    您正在查看的是一种混合解决方案。当 NServiceBus 端点/特定平台不在同一传输上时,使用 NServiceBus.Bridge 是连接它们的有效方法。有一个sample project 正在演示 RabbitMQ 和 MSMQ 的混合解决方案。

    托管 Bridge 端点的最佳位置是本地还是 Azure?

    处理 MSMQ,您希望桥接进程尽可能靠近 MSMQ 端点。

    我如何处理错误、审计和控制(例如心跳)消息,

    关于错误、审计、心跳消息,应该由ServiceControl Transpor Adapter处理。 RabbitMQ 也有一个示例here

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-08
    • 2021-08-03
    • 2023-03-28
    • 1970-01-01
    • 2019-07-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多