配置中心(apollo)持久化改造

83 阅读1分钟

1、为什么要将配置信息持久化到Redis

了解过apollo的人应该知道,apollo官方接入文档有个说明,可以将远程配置信息缓存到本地,避免当apollo服务端不可用的时候,客户端起不起来。但是在我们的应用中,我们的容器经常性的不稳定,出现容器销毁的情况。这个时候会自动新建一个容器来启动服务,但是这个时候缓存文件已经没了,如果这个时候apollo服务端不可用,那么就会造成应用起不起来的情况。为了解决这一情况,保证服务的高可用,决定对apollo客户端代码进行改造。

根据apollo缓存配置信息到本地的思路,将apollo配置信息缓存到Redis中。当然这里也会出现问题,就是Redis服务也会出现不可用的情况,但是三者一起出现概率的情况毕竟比较低,个人认为可以忽略。

2、解决方案逻辑图

下图黑色部分是源码的逻辑图,红色部分是改造点。

3、自定义配置Redis配置型

在客户端自定义Redis配置字段,通过配置文件的形式注入配置信息到RedisConfig中,这样客户端可以使用配置文件定义自己的Redis信息。

4、发布客户端源码(apollo-client) 到maven库中

通过发布jar包到maven中,可以方便多团队开发引入jar,达到便捷开发的效果。具体的改造详细方案有兴趣的朋友可以私聊我获取。