Apollo配置中心核心笔记

一:概述

1.什么是配置:

配置就是一些只读变量,它贯穿整个App的生命周期,可以通过多种加载方式(配置文件、环境变量、启动参数、基于数据库或者硬编码的形式); 所以配置需要治理。

2.常见的配置中心产品:

disconf(百度)、zookeeper、apollo(携程)、Spring Could config、nacos

3.Apollo好处:

1).server端由Spring Boot和Spring Could开发,打包后可直接运行,不需要额外安装Tomcat等应用容器。

2).Client 端不依赖任何框架,能够运行于所有Java运行环境,同时对Spring/Spring Boot环境也有较好的支持。

<dependency>
    <groupId>com.ctrip.framework.apollo</groupId>
    <artifactId>apollo-client</artifactId>
    <version>1.3.0</version>
</dependency>

3.多维度配置,支持不同环境、不同集群、不同命名空间、不同应用

4.支持热发布(实时生效)、版本发布、灰度发布、权限管理、发布审核、操作审计、客户端配置信息监控、操作Java

二:架构设计

1.Server架构:

         

1) Config Service提供配置的读取、推送等功能,服务对象时Apollo客户端;(读)

2)Admin Service提供配置的修改、发布等功能,服务的对象时Apollo Portal(管理界面);(新增、修改)

3)Config Service和Admin Service都是多实例、无状态部署,所以需要将自己注册到EureKa中并保持心跳。

4)Client通过域名访问Mate Server获取Config Service服务列表(IP+Port),然后通过IP+Port访问服务,同时在Client侧会做Load Balance、错误重试;

5)Portal通过域名访问Meta Server获取Admin Service服务列表(IP+Port),然后直接通过IP+Port访问服务,同时在Clent侧会做Load Balance、错误重试;

6)为了简化部署,实际上会把Config Serviice、EureKa和Meta Server三个逻辑角色部署在同一个JVM进程中

2.Client架构:

        

 1)客户端和服务端会保持一个长连接,从而能第一时间获取配置更新的推送(通过Http Long Polling实现)

 2)客户端还会定时从Apollo配置中心服务端拉去应用的最新配置;

         防止推送机制失效配置不更新,客户端定时拉去上报本地版本,所以一般情况下,对于定时拉取的操作,服务端会返回304没有发生改变;定时频率默认为5分钟拉取一次,

客户端也可以在运行时指定System Property:apollo.refreshInterval来覆盖,单位为分钟;

 3)客户端从Apollo配置中心服务端获取应用的最新配置后,会保存在内存中;

 4)客户端会把服务从服务端获取到的配置在本地文件系统缓存一份;

        在遇到服务不可用或者网络不通的时候,依然能从本地恢复配置;

 5)应用程序可以从Apollo客户端获取最新的配置、订阅配置更新通知;

3.实现服务部署方案:

        

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值