【问题标题】:Service Fabric and TCP connectionsService Fabric 和 TCP 连接
【发布时间】:2017-03-19 04:36:27
【问题描述】:

我们开发了一种类似 TeamViewer 的服务,客户端通过 SSL 连接到我们的集中式服务器。其他客户端也可以连接到服务器,我们可以通过我们的服务设置隧道,以实现对等连接,而不会出现 NAT 或防火墙问题。

这适用于 Azure 云服务,但我们希望远离 Azure 云服务。 Service Fabric 似乎是要走的路,因为它支持 ARM,还允许许多细粒度的服务,并使系统的部分更新变得更加容易。

我知道 Service Fabric 中的微服务可以是有状态的,但所有示例都使用持久数据作为状态。在我的情况下,TCP 连接也是状态的一部分。是否可以将 TCP 与 Service Fabric 一起使用?

TCP 端点应该在同一个实例上保持活动状态(几天),因此这使得整个服务结构模型变得更加困难。

【问题讨论】:

    标签: tcp azure-service-fabric


    【解决方案1】:

    当然,您可以让用户通过您想要的任何协议连接到您的服务。您的服务对我来说听起来非常有状态,就像用户会话状态是有状态的一样——您希望用户返回到他们的数据所在的同一个地方。在您的情况下,该“数据”是 TCP 连接。但是不能保证 TCP 端点在任何系统中都能保持活动数天 - 机器故障、软件崩溃、操作系统被修补等等。您需要为连接中断做好准备,以便您可以快速重新建立它。 Service Fabric 有状态服务非常适合这一点。将有状态服务故障转移到另一台机器非常快(毫秒)。当然,您实际上无法复制实时连接,但您肯定可以复制所有元数据,以便在连接中断时重新建立连接。

    【讨论】:

    • 当 TCP 连接终止时,我们是有弹性的(客户端只是重新连接到可能的不同实例)。同时,结果被缓冲(在有限的时间段内)。我仍然怀疑是否使用 Service Fabric。一个 docker swarm 可能对我们的服务同样有用,我猜想在不久的将来 Docker 对 Azure 中的 Windows 的支持将会出现。
    猜你喜欢
    • 2017-03-31
    • 2017-05-31
    • 2019-02-21
    • 2016-12-08
    • 2018-12-05
    • 1970-01-01
    • 2018-08-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多