Skip to content

配置中心原理

Haotian Zhang edited this page Jul 7, 2023 · 1 revision

北极星配置中心原理介绍

image

客户端端视角

  1. 应用启动时,同步从服务端拉取一次配置,获取最新的配置内容
  2. 把第一步拉取到的所有的配置文件生成 List<File->Version> 的数据 ,并向服务端发送订阅配置请求,请求内容为 List<File->Version>
  3. 当收到配置文件的推送消息时,向服务端拉取最新的配置文件

订阅配置服务端视角

  1. 先检查客户端 List<File->Version> 的请求里是否存在 File 版本号落后,如果存在,则立马响应 File -> NewVersion 内容给客户端
  2. 如果客户端配置文件版本号都是最新的,则在内存里维护 File -> List<Client> 的数据结构并 Hold 请求 30s。如果 30s 内有配置文件发布,则立马响应请求,返回 File -> NewVersion 给所有客户端

发布推送配置简化流程

  1. 用户在界面点击发布按钮,服务端更新数据库里配置发布表的数据。配置发布表的核心字段:file, version, content, mtime
  2. 每个北极星服务端实例,都会定时1s扫描配置发布表,根据 mtime 捞出最近 1s 内变更过的数据
  3. 北极星服务端实例扫描到最新变更的数据之后
  • 重新加载内存缓存
  • 向内存里的消息发布管道里写入一条消息
  1. 推送协程从消息发布管道里获取到消息,并消费消息。通过 File -> List<Client> 信息,获取所有订阅配置文件的客户端信息,并响应客户端 Hold 的请求。
Clone this wiki locally