阿波罗配置中心(apollo)的个人看法

时间:2024-03-31 14:47:03

阿波罗应该是近几年比较火的一个分布式配置中心了,说说我个人的理解,希望对一些人有用吧。

首先从使用者的角度想

我们怎么用配置中心的?

1.得有个页面,能有权限管理,能有创建配置key-value。

在阿波罗中,这个页面对应的服务叫Protal。
存储权限相关信息的,有个数据库,叫Protal DB。
存储配置文件信息的,也有个数据库,叫config DB。
config DB对应有个服务叫Admin Service,Protal就是调用它获取的配置服务。

2.页面配置好,接着就得在代码中配置,与配置中心连接。

在阿波罗中,咱们的应用服务,就叫client。
在阿波罗中,有个服务叫config Service,它就专门给咱们的应用服务client提供配置数据。

再从作者的角度想

怎么让整体服务更稳定,更全面?

1.阿波罗是一个基于spring-cloud的java项目。

要做分布式配置中心,那肯定是微服务那一套,服务的发现与注册不能少,那既然都是cloud项目了,eureka先搞起来。
把config Service和Admin Service都注册到eureka上。

2.那这个服务,以后也不能只给java项目用,得支持其他语言啊

那就在eureka前面包一层服务,这个服务主要包装eureka的发现服务,然后以http的接口暴漏出来。这个服务在阿波罗中叫Meta Server.

3.那这个Meta Server,也是个无状态集群,怎么让client或者portal发现它呢?

很简单,负载均衡可以有,那就直接nginx搞起来。

总结

现在就有两条线了
1.client通过nginx负载均衡,负载到一台meta Server上,
然后在Eureka上获取到对应的Config Service,
最后拿到对应的配置信息。

2.protal通过nginx负载均衡,负载到一台meta Server上,
然后在Eureka上获取到对应的Admin Service,
最后拿到对应的配置信息。

附1:

提供一张阿波罗作者提供的架构图:
software load balancer就是我们说的nginx负载均衡。
阿波罗配置中心(apollo)的个人看法

附2:

阿波罗github