【发布时间】:2018-07-16 20:06:09
【问题描述】:
我的公司有兴趣使用独立的 Service Fabric 集群来管理与机器人的通信。在我们的场景中,每个机器人都将托管自己的rosbridge 服务器,而我们的 Service Fabric 应用程序将为每个机器人维护 WebSocket 客户端。我设想一个有状态的服务沿着设备 id 分区,它在启动时打开连接。它应该通过心跳监控连接健康状况,将消息从机器人传递到某些协议网关服务,并监听其他服务以将消息传递给机器人。
我没有在 Service Fabric 文档中看到关于这种外部通信方式的讨论 - 我不知道这是不是因为:
- 从 Service Fabric 以这种方式管理 WebSocket(或任何双向网络协议)没有特殊注意事项。我没有看到关于限制的讨论,也没有看到任何理由,从概念上讲,我为什么不能这样做。我最初认为复制会出现问题(重复消息?),但由于任何时候只有一个副本可以是主副本,这似乎不是问题。
- Service Fabric 不适合与外部设备进行双向通信
对于这种架构是否可行的一些指导,我将不胜感激。如果没有,讨论为什么它不起作用会很有帮助。欢迎对 Service Fabric 服务和外部设备之间的双向通信限制进行一般性讨论。如果我们可以继续讨论独立集群,我更愿意 - 我们目前没有使用 Azure 服务的计划。
【问题讨论】:
-
您是否有任何特定理由使用 Service Fabric 而不是 WebApp?
-
我们有兴趣在某些情况下使用可靠的集合进行存储。我们喜欢 Service Fabric 的可扩展性和可靠性。虽然此时不使用 Azure,但我们最终希望出售托管在 Azure 中的项目。我们喜欢 Service Fabric,因为我们可以在云和独立托管模型之间进行选择,同时保持类似的部署流程。