Apollo配置中心入门

1.简介

能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性。

配置信息简介

1、配置是独立于程序的只读变量

#配置首先独立于程序的,同一份程序在不同的配置下会有不同的行为。

#其次,配置对于程序是只读,程序通过读取配置来改变自己的行为,但是程序不应该去改变配置。

#常见的配置有:DB Connection Str等

2、配置伴随应用的整个生命周期

#配置贯穿于应用的整个生命周期,应用启动时通过读取配置来初始化,在运行时根据配置调行为。

3、配置可有多种加载方式

#配置也有很多种加载方式,常见的有程序内部hard code,配置文件,在环境变量,启动参数,基于数据库等

4、配置需要治理

#权限控制:

由于配置能改变的程序的行为,不正确的配置甚至能引起灾难,所以对配置的修改必须有比较完善的权限控制

#不同的环境、集群配置管理

同一份程序在不同的环境(开发、测试、生产)、不同的集群(如不同的数据中心)经常需要不同的【配置,所以需要有完善的环境、集群配置管理

5、框架类组件配置管理

# 还有一类比较特殊的配置 - 框架类组件配置,比如CAT客户端的配置。

# 虽然这类框架类组件是由其他团队开发、维护,但是运行时是在业务实际应用内的,所以本质上可以认为框架类组件也是应用的一部分

Apollo配置中心具备的功能

1.1.统一管理不同环境、不同集群的配置

Apollo提供了统一界面进行集中式管理不同环境、集群、命名空间的配置。

1.2热发布

在Apollo修改完配置发布后,客户端立即生效,并通知应用程序。

1.3版本发布管理

配置发布后都会有版本信息,支持配置的回滚。

1.4灰度发布

支持配置的先后发布,可以先对部分应用生效,过段时间再推给所有的应用实例。

1.5权限管理、发布审核、操作审计

应用和配置均有权限管理,发布过程中还会有编辑与发布两个环节,所有操作都有审计日志。

1.6客户端可以看到配置被哪些实例使用

1.7提供了Java客户端,支持Spring、同时提供了Http接口

1.8提供开放的平台API

Apollo提供了统一配置管理的界面,对配置的修改不会过多限制

1.9部署简单

Apollo目前只依赖MySQL,部署简单,只要安装好Java和MySQL,打包脚本(一键生成所需要的安装包),并且支持自定义运行时的参数。

2.Apollo基础模型

用户在配置中心对配置进行修改并发布

配置中心通知Apollo客户端有配置更新

Apollo客户端从配置中心拉取最新的配置、更新本地配置并通知到应用

在这里插入图片描述

3.核心概念

应用:实际使用配置的应用,Apollo客户端在运行时需要知道当前应用,从而可以去获取对应的 配置,每个应用都需要有唯一的身份标识。

环境:当前应用处于的环境,从而可以去获取应用的配置,通过读取机器上的配置(server.properties中的env属性)指定的,也支持运行时通过System Property等指定。

集群:一个应用下不同实例的分组,集群默认是通过读取机器上的配置(server.properties中的idc属性)指定的。

时通过System Property等指定。

集群:一个应用下不同实例的分组,集群默认是通过读取机器上的配置(server.properties中的idc属性)指定的。

命名空间:把namespace类比为文件,不同类型的配置存放在不同的文件中,如数据库配置文件,RPC配置文件,应用自身的配置文件等,应用可以直接读取到公共组件的配置namespace,如DAL,RPC等,也可以通过继承公共组件的配置namespace来对公共组件的配置做调整,如DAL的初始数据库连接数。

发布了16 篇原创文章 · 获赞 1 · 访问量 818

猜你喜欢

转载自blog.csdn.net/apple_1900/article/details/104009919