首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >服务架构升级时的热身服务

服务架构升级时的热身服务
EN

Stack Overflow用户
提问于 2016-06-13 12:02:18
回答 2查看 913关注 0票数 1

我们想知道是否有一种内置的方式来将服务作为service服务升级的一部分,类似于您可以在基于IIS的应用程序池被请求击中之前进行热身的各种方法。理想情况下,我们希望单个服务在初始化过程中执行一些热身任务(可以是缓存加载、恢复等)。在被视为已启动并可供其他服务联系之前。这个热身应该是升级域处理的一部分,所以升级过程应该等待预热完成,服务报告为OK/就绪。

其他人是如何处理这些场景的,如何控制向服务结构发送信号的过程,即特定服务已经完全启动并准备好与其他服务联系?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-08 16:45:08

报告健康状况会有帮助。您不能报告未知,必须尽早报告错误,然后在服务准备就绪时清除该错误。警告和确定不影响升级。要清除错误,您的服务可以报告运行状态Ok、RemoveWhenExpired=true、低TTL (详细介绍如何报告)。

您必须根据最大热身时间增加HealthCheckRetryTimeout。否则,如果执行健康检查并将群集计算为错误,则升级将失败(以及根据策略回滚或暂停)。

所以,事件的顺序是:

  • 您的服务报告错误--“正在升温”
  • 升级等待固定的HealthCheckWaitDurationSec (您可以将其设置为最小时间以热身)
  • 升级执行健康检查:如果服务还没有热身,健康状态就是错误,所以升级重试直到到达HealthCheckRetryTimeout或服务不再出错为止(预热完成,服务清除错误)。
票数 1
EN

Stack Overflow用户

发布于 2016-06-14 06:22:10

在卫生政策中,有这样一个概念:

HealthCheckWaitDurationSec升级完成后(以秒为单位)等待升级域的时间,然后Service评估应用程序的健康状况。还可以将此持续时间视为应用程序在被认为健康之前运行的时间。如果健康检查通过,升级过程将继续到下一个升级域。如果健康检查失败,Service将等待间隔( UpgradeHealthCheckInterval),然后再重新尝试健康检查,直到到达HealthCheckRetryTimeout为止。默认值和推荐值为0秒。

来源

不过,这是一个固定的等待期。

您还可以发出Health 你自己。例如,你可以在热身时报告健康状况“未知”。并调整您的健康政策(HealthCheckWaitDurationSec)来检查这一点。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37789357

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档