功能概述
应用在滚动发布或者下线过程中,被调方服务实例向注册中心发起反注册,主调方从注册中心更新 IP 的过程中,存在时间 gap,导致依然有可能调用到已经下线的实例,从而调用失败。
北极星提供服务无损下线的接口:/offline,端口:28080,结合 K8s 的生命周期,实现服务无损下线。整体流程如下:

操作步骤
要实现服务路由需要完成两部分操作:
在腾讯云控制台上,打开无损下线的开关。
客户端接入,并引入无损下线的插件。北极星提供两种接入方式:
SpringCloud Tencent
Java Agent
下文将详细讲解使用步骤。
控制台操作步骤
1. 登录 TSF 控制台。
2. 在左侧导航栏,服务治理中心下,单击服务管理,选择目标北极星引擎和目标服务,进入服务详情页。
3. 单击无损上下线的 TAB。
4. 在无损下线的配置框中,点击设置按钮。

5. 按业务诉求,开启配置开关。

6. 在容器服务 TKE 等 K8s 应用部署平台中配置 preStop 生命周期检查。
preStop 配置检查指令:
curl -X PUT http://localhost:28080/offline && sleep 20
应用客户端操作步骤
北极星提供两种接入方式:
SpringCloud Tencent
Java Agent
1. 服务通过 Spring Cloud Tencent 接入北极星服务注册与发现能力。具体步骤请参见:Spring Cloud Tencent 接入北极星。
2. 引入 spring cloud tencent 无损上下线插件依赖。
在 pom.xml 中添加依赖:
<dependencies><dependency><groupId>com.tencent.cloud</groupId><artifactId>spring-cloud-tencent-lossless-plugin</artifactId></dependency></dependencies>