Spring Cloud Huawei微服务实例及配置缓存机制
微服务实例缓存机制

Spring Cloud Huawei微服务实例缓存在servicecomb-client中构建及刷新,其中刷新机制如下:
- 启动阶段不会缓存微服务实例信息,但是微服务就绪后会启动一个异步任务,间隔一定时间根据InstancesCache中的key更新微服务实例信息。
- 当收到请求后,优先从InstancesCache中获取目标微服务实例缓存信息,若缓存信息不存在,根据应用名+微服务名从注册中心获取实例信息,当成功获取到实例信息后,使用参数中的应用名+微服务名构建唯一key,将实例信息缓存到内存,如果注册中心不存在实例信息,不做实例信息缓存。
- 定时更新InstancesCache时:
- 请求注册中心正常响应且实例信息有变化,则刷新对应微服务的实例信息。
- 请求注册中心响应异常。
- 引擎不存在返回IO异常,结束本次请求。
- 非IO异常,清除当前微服务的缓存实例信息。

1.11.12-2021.0.x/1.11.12-2023.0.x/1.11.12-2024.0.x及以上版本在请求异常情况下不再清除实例缓存信息。
配置缓存机制

Spring Cloud Huawei采用PULL方式,定时主动从配置中心获取当前微服务配置。
微服务启动阶段从不同配置范围获取当前全量配置,并更新到Spring Environment中进行应用配置管理,启动完成后会启动一个异步任务,定时与配置中心交互拉取配置。配置中心正常响应并存在删除、新增、更新配置时,同步刷新至Spring Environment,并新起一个异步任务等待一定时间下次拉取配置;当请求配置中心异常响应时,不需要更新Spring Environment配置,仅新起一个异步任务等待一定时间下次拉取配置。

