【发布时间】:2018-04-05 19:27:44
【问题描述】:
我设置了一个服务,它使用RegisterServiceNotificationFilterAsync 来获取服务更改事件的通知。它按预期工作。当服务停止时,将调用此事件。
但它发生在服务离线之后。这意味着在我将它从负载均衡器池中拉出之前,针对该现在离线服务的多个请求可能已经失败。
有时 Service Fabric 只能对脱机的服务做出反应。例如,如果有人拔掉服务器节点上的插头,Service Fabric 显然无法提前告诉我该服务正在下线。
但很多时候,达到了一个阈值,是 Service Fabric 本身杀死了服务(并启动了一个新服务)。
有没有办法在 Service Fabric 终止服务之前知道?(所以我有时间更新我的负载均衡器。)
(以防万一,我在本地运行 Service Fabric。)
【问题讨论】:
-
当您的客户调用您的服务时,您应该有一个重试逻辑。 SF 可以出于各种原因将您的呼叫重定向到另一个实例。也许这是您可以抓住这些停机时间并采取相应行动的地方;您可以将这些事件推送到另一个队列以在那里进行处理。
-
@Robert - 我的应用程序“应该”拥有它。但很多人没有。迁移到 Service Fabric 会出现很多问题,我不需要仅仅因为 Service Fabric 迁移服务而添加故障。
标签: azure-service-fabric service-fabric-on-premises