我有2个NServiceBus总线,两者都配置为使用Sql Transport。我想在他们之间进行以下活动:
1)发布活动
2)发送命令(没有pub / sub)。
经过调查,我得出了许多候选解决方案:
1)使用HTTP网关。我没有使用此选项,因为我更愿意保留对数据库的所有活动。因此我对此不以为然。
2)从Github上的NServiceBus.SqlServer.Samples调整SqlBridge示例。这似乎能够监视输入队列(尽管在Msmq中),然后发布到自己的总线,然后订阅者可以接收事件。我对这个解决方案有一些疑问:
3)定制的解决方案。 (我已经从中获取了很多细节以保持简洁并保存那些疲惫的眼睛:-))这个解决方案涉及有一个专用的(非NServiceBus)数据库,NSB主机将发布消息。要在2个总线之间建立桥接,NSB主机将处理消息并写入事件表。在另一条总线上,NSB主机将使用IWantToRunWhenBusStartsAndStops监视该表,然后发送到其总线。
我喜欢选项2的想法,因为这似乎是使用现有的结构(总是假设我对IAdvancedSatellite有所了解,我希望有人可以提供)