使用NServicebus将消息从Windows服务可靠地发送到Azure Service Fabric状态服务

时间:2017-01-04 18:44:12

标签: architecture windows-services nservicebus azure-service-fabric

我有一个Windows服务,它将在我的Azure Service Fabric之外运行。我需要能够可靠地将消息从Windows服务发送到我的有状态服务结构(通过HTTP,因为这将在一个单独的网络上),最好使用NServicebus。我不确定从哪里开始,我已经在我的Windows服务上安装了NServicebus。网络非常不可靠,因此持久的消息传递是关键。

2 个答案:

答案 0 :(得分:1)

如果您已经在 Azure 中托管服务结构解决方案,我建议您使用NServiceBus的 Azure Service Bus 传输向您的微服务发送消息(队列或主题)

将在微服务中实现一些样板代码来接收和使用消息,但可以在引导服务(启动)时使用依赖注入进行管理。

答案 1 :(得分:1)

如果出于安全/基础设施的原因想要通过HTTP(S)进行隧道传输,我建议您查看NServiceBus的网关组件。是专为这些多站点方案而构建的。它通过不可靠的HTTP(S)连接为您提供一个完整的消息传递。看看:https://docs.particular.net/nservicebus/gateway/

  1. 使用Windows Server在包装盒上设置带有MSMQ的NServiceBus端点。它将使用MSMQ的内置存储和转发功能,不会在该机器上本地丢失消息。

  2. 在Azure Service Fabric中设置一个或多个NServiceBus端点。在那里,您可能会使用ASB作为服务通信的传输。

  3. 使用NServiceBus网关通过HTTP(s)通道桥接1)和2)。如果连接断开,它将执行自动重试,并且它会进行重复数据删除,以便通过HTTP提供一次一次的消息传递。