【问题标题】:Bridge between 2 NServiceBus with SqlTransport2 NServiceBus 与 SqlTransport 之间的桥梁
【发布时间】:2014-07-21 13:05:31
【问题描述】:

我有 2 个 NServiceBus 总线,它们都配置为使用 Sql Transport。我想在他们之间进行以下活动:

1) 发布事件

2) 发送命令(没有发布/订阅)。

经过调查,我得出了一些候选解决方案:

1) 使用 HTTP 网关。我没有使用此选项,因为我希望将所有活动都保留在数据库中。所以我打折了。

2) 改编来自 Github 上 NServiceBus.SqlServer.Samples 的 SqlBridge 示例。这似乎能够监视输入队列(尽管在 Msmq 中),然后发布到其自己的总线,然后订阅者可以接收事件。我对此解决方案有一些疑问:

  • 此示例能否适用于 Sql -> Sql 总线?
  • 要为输入地址指定什么,因为您似乎需要同时指定连接字符串和用于监视事件的表?
  • 可能是一个更广泛的问题,但此解决方案基于使用 IAdvancedSatellite。我找不到 IAdvancedSatellite(或实际上是 ISatellite)的定义以及为什么我会考虑使用一个。这有什么用例?

3) 定制解决方案。 (我已经从中删除了很多细节以保持简短并节省那些疲倦的眼睛:-))此解决方案涉及拥有一个专用的(非 NServiceBus)数据库,NSB 主机将向该数据库发布消息。为了在 2 条总线之间桥接,NSB 主机将处理消息并写入事件表。在另一条总线上,NSB 主机将使用 IWantToRunWhenBusStartsAndStops 监视此表,然后发送到其总线。

我喜欢选项 2 的想法,因为这似乎使用了现有的结构(总是假设我对 IAdvancedSatellite 有所了解,希望有人能提供)

【问题讨论】:

  • 选项 2 听起来像是要走的路...我会尽快回复您的问题...

标签: nservicebus bus bridge


【解决方案1】:

看看这个Issue

如果这是您正在寻找的内容,请访问1.2.0 (看看发行说明...)

【讨论】:

    【解决方案2】:

    我通过使用 IAdvancedSatellite 示例解决了这个问题。我通过提供连接字符串和“源”上的队列来适应这一点,卫星将获取消息以带入目标总线。注意事项:

    1) 您必须在“源”总线中创建 SQLBridge 队列。 2) 您必须创建从源发布者到源总线上的 SQL Bridge 队列的事件订阅。

    上述 2 项对于自动配置来说是微不足道的,但目前我的解决方案只是一个 PoC。

    问候。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-12
      • 2011-08-26
      • 2013-03-24
      • 2011-08-17
      • 1970-01-01
      • 2023-03-25
      相关资源
      最近更新 更多