Apollo配置中心架构设计,有哪些架构细节?

摘要:原创文章,转载请标注。https:www.cnblogs.comboyceleep17967590 目录声明配置中心系列文章一、什么是配置中心?二、传统配置有什么问题?三、配置中心的场景四、架构设计(1)基础模型(2)详细架构六、
原创文章,转载请标注。https://www.cnblogs.com/boycelee/p/17967590 目录声明配置中心系列文章一、什么是配置中心?二、传统配置有什么问题?三、配置中心的场景四、架构设计(1)基础模型(2)详细架构六、模块介绍客户端层ClientPortal网络层NginxLBMeta ServerEureka服务端层Config ServiceAdmin Service七、思考1、为什么NginxLB与Eureka一起使用?不使用Eureka是否可行?2、Confg Service 、Admin Service以及Portal为什么作为独立应用单独部署?最后 声明 原创文章,转载请标注。https://www.cnblogs.com/boycelee/p/17967590 配置中心系列文章 《【架构师视角系列】风控场景下的配置中心设计思考》 https://www.cnblogs.com/boycelee/p/18355942 《【架构师视角系列】Apollo配置中心之架构设计(一)》https://www.cnblogs.com/boycelee/p/17967590 《【架构师视角系列】Apollo配置中心之Client端(二)》https://www.cnblogs.com/boycelee/p/17978027 《【架构师视角系列】Apollo配置中心之Server端(ConfigSevice)(三)》https://www.cnblogs.com/boycelee/p/18005318 《【架构师视角系列】QConfig配置中心系列之架构设计(一)》https://www.cnblogs.com/boycelee/p/18013653 《【架构师视角系列】QConfig配置中心系列之Client端(二)》https://www.cnblogs.com/boycelee/p/18033286 一、什么是配置中心? 配置中心是集中管理和动态更新应用配置信息的服务,服务能够在不停机的情况下新增或修改配置信息,具有以下关键特点: (1)集中管理。配置中心集中存储服务所需要的各类配置信息; (2)动态变更。应用服务不需要重启就可以从配置中心动态获取到最新数据; (3)通知机制。当服务配置发生变化时,配置中心可以提供通知机制,通知应用程序关心的配置发生变化。 能够提高系统的可维护性、灵活性和实时性。 二、传统配置有什么问题? 传统配置会使用本地静态文件作为存储介质。就存在这几个问题: (1)动态修改。本地静态文件修改时必须重启应用,无法做到动态修改; (2)统一管理。存储格式、存储地点都杂乱无章,无法对配置进行统一规范和约束; (3)即时生效。配置完成后,需要多机器部署完成,修改配置才能够生效。无法做到及时通知、及时生效。 三、配置中心的场景 大体场景有如下这几种: (1)系统相关。如线程池配置信息、缓存大小、连接池大小、熔断/限流阈值等; (2)业务相关。如活动文案、推广活动、积分规则、价格策略等; (3)开关相关。A/B Test、特性开关、推送开关等; (4)安全相关。数据库连接信息、加密秘钥、账号密码等。 四、架构设计 (1)基础模型 (2)详细架构 架构图分为三层,分别是客户端层、网络层以及服务层。其中客户端层包括client模块、portal模块,网络层包括Load Balancer(Nginx)和Mata Server以及Eureka,服务层包括Config Service模块和Admin Service模块。 六、模块介绍 客户端层 Client 客户端负责从Config Service获取应用的配置信息; 监听配置变化。当配置发生更新时,Config Service会通知Client,并出发其进行配置刷新; 通过ip + port的方式远程调用Config Service,以获取配置数据。 Portal 管理平台,提供配置中心的管理功能,包括应用创建、查看、修改、发布以及回滚等功能 网络层 NginxLB Client、Portal通过域名的方式访问MetaServer,Nginx作为负载均衡器; Nginx将请求分发到每个Meta Server服务实例,结合Eureka可以动态地获取到注册中心注册的服务实例(Config Service、Admin Service)列表。
阅读全文