-
Notifications
You must be signed in to change notification settings - Fork 495
零实例保护
Haotian Zhang edited this page Dec 18, 2024
·
8 revisions
当服务端因为某种原因推送了空的服务实例列表,可选用零实例保护开关,使用上一次服务实例列表。以防止没有实例带来的请求调用报错。零实例保护机制在2.0.0.0及以上版本提供。
服务端推送空的实例列表有如下可能:
- 因为某些网络原因,部分实例与北极星注册中心无法连通,导致实例变为不健康,并触发北极星注册中心针对不健康实例的清理行为,导致某服务下的实例列表清空。但其实,这些实例都是正常运行的,只是没能正确注册到北极星注册中心。
SCT 在服务发现中拉取到空的服务实例列表时,首先会读取当前缓存中的数据,也就是上一次服务实例列表,然后填充到本次服务发现中。与此同时,SCT 会提交一个异步探测任务,通过尝试建立 socket 连接来探测上一次服务实例列表中的实例是否真的正常运行中。最后将探测后的服务实例列表,再更新到内存中。
完整的的配置列表如下
配置项Key | 默认值 | 是否必填 | 初始版本 | 配置项说明 |
---|---|---|---|---|
spring.cloud.polaris.discovery.zero-protection.enabled | false | 否 | 是否开启零实例保护 | |
spring.cloud.polaris.discovery.zero-protection.is-need-test-connectivity | false | 否 | 零实例保护时,是否探测节点是否连通 |
- 您在使用过程中遇到任何问题,请提 Issue 或者加入我们的开发者群告诉我们,我们会在第一时间反馈
- Spring Cloud Tencent 社区期待您的加入,一个 Star、PR 都是对我们最大的支持
- 项目介绍
- 使用指南
- 最佳实践
- 开发文档
- 学习资料