Apollo学习
简介
1、Apollo是携程框架部门研发的分布式配置中心
2、集中化管理应用的不同环境和不同集群的配置
3、配置修改后能够实时推送到应用端
4、具备规范的权限、流程治理等特性
特性
1、动态配置,即热部署
2、集群配置(本地多活)
3、命名空间配置(key,value)
4、版本控制,回滚
5、灰度发布
Apollo基础模型,(热部署、无需重启应用)
Apollo 架构图与设计理念
·Apollo Client是应用添加配置中心的客户端,由客户端负责和Apollo配置中心进行交互. Config Service提供配置的读取、推送等功能,服务对象是Apollo Client客户端
Admin Service提供配置的修改、发布等功能,服务对象是Apollo Portal(管理界面
. Config Service和Admin Service都是多实例、无状态部署,所以需要将自己注册到Eureka中并保持心跳
·在Eureka之上Apollo架了一层Meta Server用于封装Eureka的服务发现接口
.Apollo Client通过域名访问Meta Server获取Config Service服务列表(IlP+Port)【服务发现】,而后直接通过IP+Port访问服务,同时在Apollo Client侧做load balance【负载均衡】、错误重试Portal通过域名访问Meta Server获取Admin Service服务列表(IP+Port),而后直接通过IP+Port访问服务,同时在Portal侧会做load balance、错误重试
·为了简化部署,我们实际上会把Config Service、Eureka和Meta Server三个逻辑角色部署在同一个JVM进程中