配置管理

配置中心

配置管理 - 图1

流程设计

客户端视角

应用启动时,同步从服务端拉取一次配置,获取最新的配置内容。

把第一步拉取到的所有的配置文件生成 ListVersion> 的数据 ,并向服务端发送订阅配置请求,请求内容为 ListVersion>。

当收到配置文件的推送消息时,向服务端拉取最新的配置文件。

配置服务端视角

先检查客户端 ListVersion> 的请求里是否存在 File 版本号落后,如果存在,则立马响应 File -> NewVersion 内容给客户端。

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

发布推送配置简化流程

用户在界面点击发布按钮,服务端更新数据库里配置发布表的数据。配置发布表的核心字段:file, version, content, mtime

每个北极星服务端实例,都会定时1s扫描配置发布表,根据 mtime 捞出最近 1s 内变更过的数据

北极星服务端实例扫描到最新变更的数据之后

  • 重新加载内存缓存
  • 向内存里的消息发布管道里写入一条消息

推送协程从消息发布管道里获取到消息,并消费消息。通过 File -> List 信息,获取所有订阅配置文件的客户端信息,并响应客户端 Hold 的请求。