1.什么是Apollo:
Apollo(阿波罗)是一款可靠的分布式配置管理中心,诞生于携程框架研发部,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,

2.适合的场景:
用于微服务配置管理场景。

3.为什么需要Apollo:
随着程序功能的日益复杂,程序的配置日益增多:各种功能的开关、参数的配置、服务器的地址……
对程序配置的期望值也越来越高:配置修改后实时生效,灰度发布,分环境、分集群管理配置,完善的权限、审核机制……
传统的通过配置文件、数据库等方式已经越来越无法满足开发人员对配置管理的需求。
4.Apollo支持的配置的维度:

 1.

application (应用)
2.
environment (环境)
3.
cluster (集群)
4.
namespace (命名空间)

5.配置的概念,什么是配置:
配置是独立于程序的只读变量:

 *

配置首先是独立于程序的,同一份程序在不同的配置下会有不同的行为。
*
其次,配置对于程序是只读的,程序通过读取配置来改变自己的行为,但是程序不应该去改变配置。

 配置可以有多种加载方式:
配置也有很多种加载方式,常见的有程序内部hard code,配置文件,环境变量,启动参数,基于数据库等
我们对配置的需求:*

权限控制

     *

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

     *

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

     *

还有一类比较特殊的配置 - 框架类组件配置,比如CAT客户端的配置。
*
虽然这类框架类组件是由其他团队开发、维护,但是运行时是在业务实际应用内的,所以本质上可以认为框架类组件也是应用的一部分。
*
这类组件对应的配置也需要有比较完善的管理方式

5.Apollo的功能:
*
统一管理不同环境、不同集群的配置

 *

Apollo提供了一个统一界面集中式管理不同环境(environment)、不同集群(cluster)、不同命名空间(namespace)的配置。
*
同一份代码部署在不同的集群,可以有不同的配置,比如zookeeper的地址等
*
通过命名空间(namespace)可以很方便地支持多个不同应用共享同一份配置,同时还允许应用对共享的配置进行覆盖
*
配置修改实时生效(热发布)

 *

用户在Apollo修改完配置并发布后,客户端能实时(1秒)接收到最新的配置,并通知到应用程序
*
版本发布管理

 *

所有的配置发布都有版本概念,从而可以方便地支持配置的回滚
*
灰度发布

 *

支持配置的灰度发布,比如点了发布后,只对部分应用实例生效,等观察一段时间没问题后再推给所有应用实例
*
权限管理、发布审核、操作审计

 *

应用和配置的管理都有完善的权限管理机制,对配置的管理还分为了编辑和发布两个环节,从而减少人为的错误。
*
所有的操作都有审计日志,可以方便地追踪问题
*
客户端配置信息监控

 *

可以在界面上方便地看到配置在被哪些实例使用
*
提供Java和.Net原生客户端

 *

提供了Java和.Net的原生客户端,方便应用集成
*
支持Spring Placeholder, Annotation和Spring Boot的ConfigurationProperties,方便应用使用(需要Spring 3.1.1+)
*
同时提供了Http接口,非Java和.Net应用也可以方便地使用
*
提供开放平台API

 *

Apollo自身提供了比较完善的统一配置管理界面,支持多环境、多数据中心配置管理、权限、流程治理等特性。不过Apollo出于通用性考虑,不会对配置的修改做过多限制,只要符合基本的格式就能保存,不会针对不同的配置值进行针对性的校验,如数据库用户名、密码,Redis服务地址等
*
对于这类应用配置,Apollo支持应用方通过开放平台API在Apollo进行配置的修改和发布,并且具备完善的授权和权限控制
*
部署简单

 *

配置中心作为基础服务,可用性要求非常高,这就要求Apollo对外部依赖尽可能地少
*
目前唯一的外部依赖是MySQL,所以部署非常简单,只要安装好Java和MySQL就可以让Apollo跑起来
*
Apollo还提供了打包脚本,一键就可以生成所有需要的安装包,并且支持自定义运行时参数

6.Apollo的数据模型:

 1.

用户在配置中心对配置进行修改并发布
2.
配置中心通知Apollo客户端有配置更新
3.
Apollo客户端从配置中心拉取最新的配置、更新本地配置并通知到应用

Apollo阿波罗配置中心基本概述相关推荐

  1. Apollo - 阿波罗配置中心使用,一文搞定!

    Apollo基本概念 一.简介 Apollo - A reliable configuration management system Apollo的Github地址 Apollo(阿波罗)是携程框架 ...

  2. linux阿波罗配置文件放在哪,Apollo阿波罗配置中心

    一.准备工作 1.2.1 AppId classpath:/META-INF/app.properties  内容app.id=YOUR-APP-ID 1.2.2 Environment 对于Mac/ ...

  3. Apollo阿波罗配置中心

    一.准备工作 1.2.1 AppId classpath:/META-INF/app.properties  内容app.id=YOUR-APP-ID 1.2.2 Environment 对于Mac/ ...

  4. SpringCloud - Spring Cloud 之 Apollo Config携程阿波罗配置中心(二十一)

    由于Spring Cloud自带的Config 需要配合 Bus 使用,且不能实时刷新,因此市面上出现了很多开元的配置中心 市面上开源的配置中心 Apollo(阿波罗):携程框架部门研发的分布式配置中 ...

  5. Apollo(阿波罗配置中心学习)- 实用详细

    Apollo系列学习(阿波罗配置中心学习) 一.Apollo配置中心简单介绍 二.Windows 系统搭建基于携程Apollo配置中心单机模式 三.自定义Spring Boot项目通过配置中心启动项目 ...

  6. Apollo-阿波罗配置中心详细使用教程

    Apollo基本概念 一.简介 Apollo - A reliable configuration management system Apollo的Github地址 Apollo(阿波罗)是携程框架 ...

  7. Apollo微服务配置中心详解

    Apollo微服务配置中心详解 前言 一.Apollo架构 (一)简介 (二)角色介绍 (三)服务端实现 (四)客服端实现 二.Apollo部署 (一)准备数据库 (二)配置服务 1. 手动部署 (1 ...

  8. 阿波罗配置中心(apollo)的个人看法

    阿波罗应该是近几年比较火的一个分布式配置中心了,说说我个人的理解,希望对一些人有用吧. 首先从使用者的角度想 我们怎么用配置中心的? 1.得有个页面,能有权限管理,能有创建配置key-value. 在 ...

  9. .NET Core + K8S + Apollo 玩转配置中心

    1.引言 Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限.流程治理等特性,适用于微服务配置管理 ...

最新文章

  1. FMDatabase常见的几个操作
  2. android碎片按钮,Android 碎片(Fragment)
  3. 认识VC++类向导的使用
  4. umi config.js整体defineConfig配置
  5. 计算机网络-自顶向下方法(7th) 第五章 Problems 英文题目1-15+中文答案
  6. 动态调用Webservice 支持Soapheader身份验证(转)
  7. java项目实战 学生信息管理系统(UI界面+连接数据库)
  8. vue项目实现文字转换成语音播放功能
  9. html放大镜小图标,canvas初尝试之放大镜图标绘制
  10. window 搜索占用进程 资源监视器
  11. Movist Pro for Mac 2.2.16 — 播放器
  12. 深圳大学计算机单招,2016年深圳大学美术单招校考时间
  13. 【微信红包封面】最新!最全!
  14. Pycharm报错:AttributeError: ‘NoneType‘ object has no attribute ‘_gdal‘的解决办法
  15. 用计算机弹出微微,电脑显示器轻微闪烁怎么办
  16. Photoshop照片一键转换手绘效果图动作
  17. Excel双条件交叉查询
  18. 游戏用户隐私协议《贪吃鱼进化》
  19. LU分解(matlab实现)
  20. 史上最爆笑的真心话大冒险

热门文章

  1. 【非原创 遥感卫星信息整理汇总-02】国外遥感卫星信息汇总
  2. Interview:算法岗位面试—BAT公司问题面试之计算机基础(进程与线程的区别)、经典概率问题等集锦
  3. 使用stream报错:stream has already been operated upon or closed
  4. ps软件打不开计算机受限制,w10打不开ps怎么解决
  5. c语言编程出彩色告白,C语言告白代码,一闪一闪亮晶晶~
  6. CentOS7 安装Mldonkey(电驴)步骤
  7. 乐高JAVA编程_编程和乐高机器人,是一样的吗?学习这些有用吗?
  8. 自然资源部卫星遥感应用报告(更新至2020)
  9. OLED_I2C_SH1106屏幕教程
  10. 给小朋友讲故事——科学课,地球,太阳和月亮