- 最新动态
- 功能总览
- 产品介绍
- 计费说明
- 快速入门
- 用户指南
- 最佳实践
- 开发指南
- API参考
- SDK参考
- 场景代码示例
-
常见问题
- 使用华为云CSE注意事项
- Nacos引擎
-
ServiceComb引擎
- 如何进行本地开发和测试?
- 证书加载错误
- 无效头名称
- mesher性能损耗是多少?
- 连接服务中心提示“Version validate failed”
- 连接服务中心提示“Not enough quota”
- 如何处理开启了安全认证的ServiceComb引擎专享版开启IPv6后服务注册失败?
- 服务名重复校验范围是什么?
- 为什么一定要定义服务契约?
- 如何解决微服务应用开发过程中微服务开发框架同netty版本不匹配的问题?
- ServiceComb专享版引擎版本从1.x升级到2.x时有哪些注意事项?
- 用户业务从微服务引擎专业版迁移到微服务引擎专享版checklist
- 创建引擎提示“Duplicate cluster name”
- 创建引擎过程中处理接入地址步骤失败,提示the subnet could not be found
- 本地轻量化注册服务报错:does not match rule: {Max: 100, Regexp: ^[a-zA-Z0-9]{1,160}$|^[a-zA-Z0-9][a-zA-Z0-9_\-.]{0,158}[a-zA-Z0-9]$}"}
- SpringCloud应用连接ServiceComb引擎2.x版本配置中心失败
- 在全局配置中配置相关的配置项修改后,服务获取的配置内容未修改成功
- 获取配置失败
- 应用网关
- 视频帮助
- 文档下载
- 通用参考
链接复制成功!
功能介绍
在应用使用过程中,应用的发布、重启、扩缩容操作无法避免,为了保证应用正确上下线、流量不丢失,微服务引擎基于Sermant Agent提供了一套优雅上下线的方案,包括预热、延迟下线等,避免了请求超时、连接拒绝、流量丢失等问题的发生。
- 此功能目前处于公测阶段,当前仅在华东-上海一支持。
- 当ServiceComb引擎为2.x版本且未开启安全认证时,支持此功能。
- 目前仅支持基于Spring Cloud框架开发java应用,支持的注册中心包含Eureka、Nacos、 Consul以及Zookeeper。
- 优雅上下线基于Spring Cloud的负载均衡实现,若有实现自定义负载均衡,该能力将会失效。
优雅上线实现机制
预热是优雅上线的核心机制,Sermant Agent还提供了延迟注册机制,减少流量丢失,从而实现优雅上线。
- 延迟注册
在服务启动成功之后不立刻注册,而是延迟一段时间再去注册,目的是虽然服务启动成功了,但可能还有一些框架或者业务的代码没有初始化完成,可能会导致调用报错,可以通过设置延迟注册,让服务充分初始化后再注册到注册中心对外提供服务。
- 预热
该方式主要用于解决当流量突然增加时,可能瞬间把实例压垮的问题。通过预热,让通过的流量缓慢增加,在一定时间内逐渐增加到阈值上限,目的是采用少流量对服务实例进行初始化,防止服务崩溃。预热是基于客户端实现的,当流量进入时,Sermant Agent会动态调整流量,根据服务的预热配置,对流量进行动态分配。对于开启服务预热的实例,在刚启动时,会给该实例分配较少的流量,随后流量将以曲线方式逐渐增加至与其他实例近乎持平。
优雅下线实现机制
延迟下线是优雅下线的核心机制,且Sermant Agent还提供了流量统计机制,即服务处理完所有统计的请求后再下线,减少流量丢失,从而实现了优雅下线。

- 延迟下线
当服务提供者实例下线时,无法避免仍有业务请求还未处理完成,从而可能会出现请求丢失的现象。延迟下线即对下线的实例提供保护,优雅下线插件基于下线实时通知+刷新缓存的机制快速更新上游的实例缓存,服务消费者能尽早感知服务提供者实例下线的行为,同时基于流量统计的方式,确保即将下线的实例尽可能的将流量处理完成,最大程度避免流量丢失。
- 流量统计
当服务即将下线时,为确保当前请求已全部处理完成,Sermant Agent会尝试等待30s(可配置),定时统计和判断当前实例请求是否均处理完成,处理完成后最终下线。
版本支持
Spring Cloud Version |
Spring Boot Version |
Zookeeper Discovery Version |
Nacos Discovery Version |
Consul Discovery Version |
Eureka Client Version |
---|---|---|---|---|---|
Edgware.SR2+ |
1.5.x |
1.x.x、2.0.x |
1.5.x |
1.x.x、2.0.x、2.1.x |
1.4.x、2.0.x、2.1.x |
Finchley.x |
2.0.x |
2.x.x |
1.5.x、2.0.x、2.1.x |
1.3.x、2.0.x、2.1.x |
1.4.x、2.0.x、2.1.x |
Greenwich.x |
2.1.x |
2.x.x |
1.5.x、2.0.x、2.1.x |
1.3.x、2.0.x、2.1.x |
1.4.x、2.0.x、2.1.x |
Hoxton.x |
2.2.x、2.3.x |
2.x.x、3.0.0 - 3.1.0 |
2.x.x、2020.0.RC1、2021.1 |
1.3.x、2.0.x、2.1.x、2.2.x |
1.4.4.RELEASE - 1.4.7.RELEASE、2.x.x、3.0.0 - 3.1.0 |
2020.0.x |
2.4.x、2.5.x |
3.0.0 - 3.1.0 |
2.x.x、2020.0.RC1、2021.1 |
3.0.0 - 3.1.0 |
2.1.x、2.2.x、3.0.0 - 3.1.0 |
2021.0.0 |
2.6.x |
3.0.0 - 3.1.0 |
2.x.x、2020.0.RC1、2021.1 |
3.0.0 - 3.1.0 |
3.0.0 - 3.1.0 |