Apollo 分布式配置中心详解
Apollo 分布式配置中心详解
· · 1205 次点击 ·
·
开始浏览
Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。
本文简单从功能特点做介绍,更详细的说明请参考Apollo配置中心介绍。本地快速部署可以参考这里。线上的演示环境从这里可以访问到:
106.54.227.205 (账号/密码: apollo/admin)Apollo 配置中心产生背景
大多情况下程序随着功能的复杂,程序的配置也会增多:包括各种功能开关、参数配置、服务地址信息配置等,同时开发人员对程序配置的期望值也越来越高:配置修改后实时生效,灰度发布,分环境、分集群的管理配置、权限控制、审核机制等。
在这样的大环境下,传统的通过配置文件、数据库等方式已经越来越无法满足开发人员对配置管理的需求。Apollo 配置中心应运而生!
Apollo 配置中心功能特点正是基于配置的特殊性, Apollo 在设计之初就立志于成为一个有治理能力的配置管理平台。当前提供了以下一些特性,
统一管理不同环境、不同集群的配置Apollo 提供了一个统一界面集中式管理不同环境(environment)、不同集群(cluster)、不同命名空间(namespace)的配置。同一份代码部署在不同的集群,可以有不同的配置,通过命名空间(namespace)可以很方便的支持多个不同应用共享同一份配置,同时还允许应用对共享的配置进行覆盖。
配置修改实时生效(热发布)用户在 Apollo 修改完配置并发布后,客户端能实时(1秒)接收到最新的配置,并通知到应用程序。
版本发布管理所有的配置发布都有版本概念,从而可以方便地支持配置的回滚。
支持配置的灰度发布,比如点了发布后,只对部分应用实例生效,等观察一段时间没问题后再推给所有应用实例。
权限管理、发布审核、操作审计应用和配置的管理都有完善的权限管理机制,对配置的管理还分为了编辑和发布两个环节,从而减少人为的错误。所有的操作都有审计日志,可以方便的追踪问题。
客户端配置信息监控可以在界面上方便地看到配置在被哪些实例使用。
配置中心作为基础服务,可用性要求非常高,这就要求 Apollo 对外部依赖尽可能地少,目前唯一的外部依赖是 MySQL,所以部署简单,只要安装好 Java 和 MySQL 就可以让 Apollo 跑起来。
Apollo 配置中心适用范围既然 Apollo 定位于配置中心,那么在这里有必要先简单介绍一下什么是配置。配置有以下几个属性。
配置是独立于程序的只读变量配置首先是独立于程序的,同一份程序在不同的配置下会有不同的行为。其次,配置对于程序是只读的,程序通过读取配置来改变自己的行为,但是程序不应该去改变配置。
常见的配置有:DB Connection Str、Thread Pool Size、Buffer Size、Request Timeout、Feature Switch、Server Urls 等。
配置伴随应用的整个生命周期配置贯穿于应用的整个生命周期,应用在启动时通过读取配置来初始化,在运行时根据配置调整行为。
配置可以有多种加载方式配置也有很多种加载方式,常见的有程序内部 hard code,配置文件,环境变量,启动参数,基于数据库等。
配置需要治理权限控制,由于配置能改变程序的行为,不正确的配置甚至能引起灾难,所以对配置的修改必须有比较完善的权限控制,不同环境、集群配置管理,同一份程序在不同的环境(开发,测试,生产)、不同的集群(如不同的数据中心)经常需要有不同的配置,所以需要有完善的环境、集群配置管理。
Apollo 配置中心基本使用Apollo 基础模型
用户在配置中心对配置进行修改并发布; 配置中心通知 Apollo 客户端有配置更新; Apollo 客户端从配置中心拉取最新的配置、更新本地配置并通知到应用。界面概览
上图是 Apollo 配置中心中一个项目的配置首页,在页面左上方的环境列表模块展示了所有的环境和集群,用户可以随时切换。页面中央展示了两个 namespace(application 和 FX.apollo)的配置信息,默认按照表格模式展示、编辑。用户也可以切换到文本模式,以文件形式查看、编辑。页面上可以方便地进行发布、回滚、灰度、授权、查看更改历史和发布历史等操作。
1205 次点击
加入收藏
相关文章
- 分布式 | 浅谈 dble 引入 ClickHouse 的配置操作
- Tomcat配置环境变量
- linux下DNS配置及域名解析服务
- webpack基本配置项_webpack配置文件详解
- debian配置samba_ubuntu设置文件共享
- H3C-S7506X-IRF配置教程(BFD MAD检测)
- 微服务架构开发实战:分布式消息总线,实现配置信息的自动更新
- SpringCloud Config分布式配置中心
- SpringCloud 构建微服务架构,分布式配置中心(加密解密)
- 【OkHttp】Android 项目导入 OkHttp ( 配置依赖 | 配置 networkSecurityConfig | 配置 ViewBinding | 代码示例 )
- idea新版本的底部version control里local change窗口显示配置修改详细教程
- ORACLE DataGuard Logical Standby 详解之:(四)逻辑Standby数据库的自定义配置
- SQLServer 错误 7308 因为 OLE DB 访问接口“%ls”配置为在单线程单元模式下运行,所以该访问接口无法用于分布式查询。 故障 处理 修复 支持远程
- Centos7配置fastdfs和nginx分布式文件存储系统实现过程解析
- 配置数据源的三种方式和sql心跳的配置详解数据库
- Spring Cloud(六):Spring Cloud Config 分布式配置中心使用教程详解编程语言
- MySQL 主从配置优化实践(mysql主从优化)
- Oracle 参数 LOG_ARCHIVE_DEST 官方解释,作用,如何配置最优化建议
- MySQL 环境变量配置指南(mysql环境变量配置)
- 提升工作效率:Linux系统优化配置(电脑linux系统配置)
- Nginx高性能Web服务器:Nginx HTTP负载均衡和反向代理的配置与优化(第六章)
- 如何安装和配置MySQL的主从架构(mysql主从安装配置)
- Oracle数据库实现双主DG配置策略(oracledg配置)
- 高可用Linux双机高可用配置:保证不间断运行(linux 配置双机)
- 如何快速配置SQL Server环境(配置下sqlserver)
- 配置分布式Redis,提升性能(分布式 redis 配置)
- 分布式存储解决方案Redis集群配置指南(redis集群的配置方式)
- Redis集群实现多哨兵配置(redis配置多哨兵)
- 解析wamp5下虚拟机配置文档