【问题标题】:How to push events to a C# client from an Azure Service Fabric Service?如何将事件从 Azure Service Fabric 服务推送到 C# 客户端?
【发布时间】:2021-01-08 18:56:57
【问题描述】:

我正在尝试将事件从我的一个服务中发生的事情(托管在 Service Fabric 集群上)推送到 C# 客户端应用程序。

虽然在我的集群中通信事件似乎是可能的,(我正在考虑使用这个https://service-fabric-pub-sub.socreate.it/),但我找不到将事件从我的服务的 API 网关中继回客户端应用程序的方法(在他们订阅之后)。

我试图研究设置网络套接字,并查看了 Signal R,但我不确定这些工具是否适合我想要实现的目标。任何关于从哪里开始寻找的建议都会很有帮助!

提前致谢!

【问题讨论】:

  • 您链接的库用于 SF 集群内的发布/订阅消息传递。如果您需要将这些事件推送到客户端,而不是定期轮询服务器以获取新事件,那么听起来 websockets 确实可以很好地满足此要求。对于 websockets - 有许多不同的方法可以实现。我已经记录了一个解决方案here,但是Azure SignalR 服务设置起来会更简单。

标签: c# azure-service-fabric


【解决方案1】:

您正在查看的 Pub Sub 库用于在集群内部进行消息传递,而不引入外部依赖项。

如果您想向集群外部的应用程序发送消息,您应该使用消息队列,例如Azure Service Bus Queues

要从集群内的 C# 客户端接收消息,您可以使用 this library or source code,它实现了 ICommunicationListener

【讨论】:

  • 感谢您的指点,将查看 Azure 服务总线队列。我也经常看到 Rabbit MQ 被提及,我希望它也可能是合适的。如果我理解正确,我应该能够在服务器上设置我的消息队列,并且我的服务可以将消息发送到队列 - 客户端应用程序可以订阅消息队列中的消息,以便在服务发送消息时收到通知?再次感谢您的帮助:)
  • 是的,Rabbit MQ 可以工作,但您必须自己托管。 Azure 服务总线的一大优势是它为您托管、高可用性并且可以扩展。如果你已经在 Azure 中运行 Service Fabric,添加它应该很容易。
猜你喜欢
  • 1970-01-01
  • 2012-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-04
  • 1970-01-01
相关资源
最近更新 更多