文档

无损下线

更新时间:

对于任何一个线上应用,在服务更新部署过程中,需要尽量保证客户端无感知,即从应用停止到重启恢复服务这个阶段不能影响正常的业务请求。在应用执行部署、停止、回滚、缩容和重置时,需要通过无损下线配置来保证应用正常关闭。本文介绍使用无损下线的注意事项、使用优势以及如何在控制台使用无损下线功能。

为什么需要无损下线

由于微服务应用自身调用特点,在高并发下,服务提供端应用实例的直接下线,会导致服务消费端应用实例无法实时感知下游实例的实时状态,因而出现继续将请求转发到已下线的实例,从而出现请求报错,流量有损。

无损下线实现方案

提供者A在下线时,虽然会主动通知到注册中心,但此时消费者A可能无法实时感知到,导致消费者A继续调用已下线的提供者A。为了避免这种情况的发生,在提供者A接到下线命令即将下线前,对于在等待下线阶段收到的请求,在其返回值中都增加上特殊标记,让消费者A接收到返回值并识别到相关标志后主动拉取一次注册中心服务实例,从而实时感知提供者A最新状态,从而达到提供者A的下线状态,能够被消费者A实时感知。

说明

当前应用只需要接入MSE,就会默认开启无损下线功能,但无损下线主动通知功能需要手动配置。同时MSE无损上下线功能提供可观测能力,帮助您判断应用是否无损下线成功。

image.png

如何开启主动通知

前提条件

注意事项

MSE治理中心暂不支持如下应用无损下线:

  • 暂不支持非WebFlux或SpringMVC应用的无损下线。

  • 暂不支持消费端为非微服务应用的下游提供者应用的无损下线。

  • 暂不支持非Java应用体系的无损下线。

  • 需要消费者端和提供端应用都接入MSE微服务治理,才能实现应用无损下线。

说明

K8s中容器的terminationGracePeriodSeconds参数值需要大于30,建议配置为90。

开启无损下线主动通知

  1. 登录MSE治理中心控制台,并在顶部菜单栏选择地域。

  2. 在左侧导航栏,选择治理中心 > 应用治理,然后单击目标应用的资源量卡片。

  3. 在目标应用详情页面的左侧导航栏,单击流量治理,然后选择无损上下线页签。

  4. 无损下线区域,打开主动通知开关。在提示信息对话框,单击确定

    开启主动通知后,实例在下线阶段将会主动通知消费者,且不再请求即将下线的实例。

相关文档

  • 本页导读 (1)
文档反馈