【问题标题】:Highly available Service Fabric WebApi hosted on AzureAzure 上托管的高可用性 Service Fabric WebApi
【发布时间】:2016-12-19 06:53:54
【问题描述】:

我们将在 Azure 上公开托管在我们的服务结构集群(实例计数 -1)中的所有节点上的无状态 Owin WebAPI。 WebAPI 旨在供公众使用,即使面对内部服务和 WebAPI 本身的升级,也应该具有高可用性。我们在集群前面有 Azure 负载均衡器 (LB),它每 5 秒使用一次 TCP 探测在端口 80 上探测集群,以确定哪些节点可以接收 http 流量。

我们在升级 WebAPI 时遇到问题,即 LB 指向正在升级但尚未被探针注册为离线的节点。 Service Fabric 不与 LB 协调升级过程,因此在升级时没有机会(并且 Azure LB 上没有 API)使节点停止轮换。

我们想知道人们如何在 Azure 上的 Service Fabric 上实现高可用性 http 服务。我希望有人能评论他们的一般方法。

【问题讨论】:

    标签: asp.net-web-api high-availability azure-service-fabric


    【解决方案1】:

    如何在 Azure LB 中使用 HTTP 探测并在 Web API 中添加像 http://node:80/_health 这样的健康检查端点?这样你就可以控制一个节点是否应该处理流量。

    【讨论】:

    • 我们一直在考虑这个问题。我们必须在升级时延迟关闭过程,这包括捕获发送到进程的 Ctrl-C 并等待足够的 LB 探测来命中健康端点,以认为完全关闭进程是安全的。我们还必须为升级提供足够的超时时间,以避免进程因响应关闭缓慢而将应用程序变为警告/错误。
    猜你喜欢
    • 2017-04-29
    • 1970-01-01
    • 2020-01-05
    • 2018-09-05
    • 2017-01-27
    • 1970-01-01
    • 2017-03-26
    • 2016-11-29
    • 1970-01-01
    相关资源
    最近更新 更多