我们想知道是否有一种内置的方式来将服务作为service服务升级的一部分,类似于您可以在基于IIS的应用程序池被请求击中之前进行热身的各种方法。理想情况下,我们希望单个服务在初始化过程中执行一些热身任务(可以是缓存加载、恢复等)。在被视为已启动并可供其他服务联系之前。这个热身应该是升级域处理的一部分,所以升级过程应该等待预热完成,服务报告为OK/就绪。
其他人是如何处理这些场景的,如何控制向服务结构发送信号的过程,即特定服务已经完全启动并准备好与其他服务联系?
发布于 2016-07-08 16:45:08
报告健康状况会有帮助。您不能报告未知,必须尽早报告错误,然后在服务准备就绪时清除该错误。警告和确定不影响升级。要清除错误,您的服务可以报告运行状态Ok、RemoveWhenExpired=true、低TTL (详细介绍如何报告)。
您必须根据最大热身时间增加HealthCheckRetryTimeout。否则,如果执行健康检查并将群集计算为错误,则升级将失败(以及根据策略回滚或暂停)。
所以,事件的顺序是:
发布于 2016-06-14 06:22:10
在卫生政策中,有这样一个概念:
HealthCheckWaitDurationSec升级完成后(以秒为单位)等待升级域的时间,然后Service评估应用程序的健康状况。还可以将此持续时间视为应用程序在被认为健康之前运行的时间。如果健康检查通过,升级过程将继续到下一个升级域。如果健康检查失败,Service将等待间隔( UpgradeHealthCheckInterval),然后再重新尝试健康检查,直到到达HealthCheckRetryTimeout为止。默认值和推荐值为0秒。
不过,这是一个固定的等待期。
您还可以发出Health 你自己。例如,你可以在热身时报告健康状况“未知”。并调整您的健康政策(HealthCheckWaitDurationSec)来检查这一点。
https://stackoverflow.com/questions/37789357
复制相似问题