携程配置中心 apollo 篇【转】

文章内容均为转载,本人记录学习使用。

================= apollo 篇 ======================================
https://blog.csdn.net/qq_34288630/article/details/79460153 【☆☆☆☆☆】
主题:利用spring boot集成apollo配置中心,基于开源模式开发,开源地址:https://github.com/ctripcorp/apollo
背景:
1.程序功能越来越复杂,程序的配置日益增多:
2.各种功能的开关、参数配置、服务器地址、数据库链接等
3.对于配置的期望值越来越高:配置修改后实时生效、灰度发布、分环境、分集群管理配置、完善的权限、审核机制等。
apollo 应运而生
简介:
Apollo(阿波罗)是携程框架部门研发的开源配置管理中心。
1.能够集中化管理应用不同环境、不同集群的配置;
2.配置修改后能够实时推送到应用端;
3.具备规范的权限、流程治理等特性。

Apollo支持4个维度管理Key-Value格式的配置:
application (应用)
environment (环境)
cluster (集群)
namespace (命名空间)

配置基本概念、关键属性:
1、配置是独立于程序的只读变量
1.1、配置首先独立于程序的,同一份程序在不同的配置下会有不同的行为;
1.2、配置对于程序是只读,程序通过读取配置来改变自己的行为,但是程序不应该去改变配置;
常见的配置有(类似 请求超时 可采用注解的形式编码):
数据库连接:DB Connection Str
线程池:Thread Pool Size
缓冲区:Buffer Size
请求超时:Request Timeout
Java特征开关:Feature Switch
Java服务器:Server Urls等
2、配置伴随应用的整个生命周期
#配置贯穿于应用的整个生命周期,应用启动时通过读取配置来初始化,在运行时根据配置调行为。
3、配置可有多种加载方式
#配置也有很多种加载方式,常见的有程序内部hard code,配置文件,在环境变量,启动参数,基于数据库等
4、配置需要治理
#权限控制:
由于配置能改变的程序的行为,不正确的配置甚至能引起灾难,所以对配置的修改必须有比较完善的权限控制
#不同的环境、集群配置管理
同一份程序在不同的环境(开发、测试、生产)、不同的集群(如不同的数据中心)经常需要不同的【配置,所以需要有完善的环境、集群配置管理
5、框架类组件配置管理
# 还有一类比较特殊的配置 - 框架类组件配置,比如CAT客户端的配置。
# 虽然这类框架类组件是由其他团队开发、维护,但是运行时是在业务实际应用内的,所以本质上可以认为框架类组件也是应用的一部分
# 这类组件对应的配置也需要有比较完善的管理方式。

posted on 2018-08-17 11:07  秉识  阅读(527)  评论(0编辑  收藏  举报