Skip to content

零实例保护

Haotian Zhang edited this page Dec 27, 2023 · 8 revisions

目录

简介

当服务端因为某种原因推送了空的服务实例列表,可选用零实例保护开关,使用上一次服务实例列表。以防止没有实例带来的请求调用报错。

服务端推送空的实例列表有如下可能:

  • 因为某些网络原因,部分实例与北极星注册中心无法连通,导致实例变为不健康,并触发北极星注册中心针对不健康实例的清理行为,导致某服务下的实例列表清空。但其实,这些实例都是正常运行的,只是没能正确注册到北极星注册中心。

零实例保护实现设计

SCT 在服务发现中拉取到空的服务实例列表时,首先会读取当前缓存中的数据,也就是上一次服务实例列表,然后填充到本次服务发现中。与此同时,SCT 会提交一个异步探测任务,通过尝试建立 socket 连接来探测上一次服务实例列表中的实例是否真的正常运行中。最后将探测后的服务实例列表,再更新到内存中。

image
Clone this wiki locally