功能概述
对于任何一个线上应用来说,发布、扩容、缩容、重启等操作不可避免。Java 应用经常会延迟加载,启动后异步加载一些资源,例如:服务需要从文件存储 COS 获取数据或者文件,待数据或者文件拉取完成后才能对外提供服务。如果在应用启动后直接注册服务,会导致服务实际没有就绪而调用失败。为了确保服务无损上线,需要实例成功注册并且就绪后,先小流量预热,再放流量进来。具体功能包含:
服务延迟注册
服务注册就绪检查(提供服务注册是否成功的接口,以便打通 K8s 就绪检查)
服务小流量预热

操作步骤
要实现服务路由需要完成两部分操作:
在腾讯云控制台上,设置无损上线的规则。
客户端接入,并引入无损上线的插件。北极星提供两种接入方式:
SpringCloud Tencent
Java Agent
下文将详细讲解使用步骤。
腾讯云控制台操作步骤
1. 登录 TSF 控制台。
2. 在左侧导航栏,选择 Polaris(北极星),在实例详情页选择目标引擎实例。
3. 单击左侧导航栏访问限流,进入熔断规则展示页面,单击新建限流规则,在弹窗中配置好限流规则后,单击提交。
4. 在左侧导航栏,服务治理中心下,单击服务管理,选择目标北极星引擎和目标服务,进入服务详情页。
5. 单击无损上下线的 TAB。
6. 在无损上线的配置框中,点击设置按钮。

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

功能 | 描述 | 字段 |
延迟注册 | 北极星提供延迟注册的能力,待应用完全启动后,再进行服务注册。北极星支持两种延迟注册方式: 时长延迟:通过设置延迟注册时间,可让应用在充分初始化后再注册到注册中心对外提供服务。 探测延迟:探测应用对外暴露的检查接口,接口探测成功,返回200,确认应用可对外服务后再注册到注册中心。 | 时长延迟: 延迟注册时间:延迟注册的时间,支持0-3600秒,默认延迟注册时间:30秒 |
| | 探测延迟: 探测协议:支持HTTP 探测方法:支持PUT、GET、POST、DELETE、全部。 探测接口:填写业务暴露健康检查接口,接口探测成功后,服务注册。例如:/health |
服务预热 | 北极星提供服务预热的能力,小流量验证后无误后,再放入正常流量。 | 预热时长:默认120秒,支持 0~86400 秒(24小时)。 预热终止保护百分比:当超过一定百分比的节点处于预热阶段,则预热终止,避免流量聚集在少量节点导致过载。默认50% 预热曲线值:默认为1,支持 1~5 之间的整数值,流量权重会根据配置的预热曲线值呈指数型增长。数值越大,预热曲线梯度越大。 服务实例权重计算规则: ![]() |
就绪检查 | 就绪检查开关开启后,提供接口判断注册是否完成。和 K8s 就绪检查功能配合使用,当应用注册完成返回200状态码,帮助 K8s 判定应用已就绪;未完成注册返回500,帮助 K8s 判定应用未就绪。
| |
8. 可观测性。
可以实时查看服务无损上线的状态、服务请求等,确保每一步操作符合预期。

应用客户端操作步骤
北极星提供两种接入方式:
1. SpringCloud Tencent
2. 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>