标签:程序 content 缓存 集中管理 配置参数 mysql 界面 location xml配置
# 基本概念 **使用场景** 是一个分布式的配置中心。适用于微服务; **核心功能** 1. 集中管理不同环境,不同集群的配置; 2. 配置修改后可以实时推送到应用端; 3. 具备规范的权限,流程治理特性; **开发技术** * 服务端使用springboot,springcloud开发,打包后可以直接运行,无需安装额外的tomcat; * java客户端不依赖任何框架,对Spring,SpringBoot的客户端也有额外支持 * .net客户端不依赖任何框架 **概念** | 缩写 | 全称 | 说明 | |-|-|-| |FAT||功能测试环境| |UAT||集成测试环境| |PRO||生产环境| |DEV||开发环境| **详细功能** 1. 统一管理不同环境,不同集群,不同命名空间的配置; 1. 同一份代码可以部署在不同的集群,可以有不同的配置,比如zk地址 1. 通过命名空间可以方便的支持不同应用共享同一份配置,同时还允许应用对共享的配置进行覆盖; 1. 配置修改实时生效 (用户在后台修改完配置发布后,客户端可以在1s内收到最新的配置并通知应用程序) 1. 版本发布概念, (所有的配置发布都有版本概念,可以方便的支持配置的回滚) 1. 灰度发布(配置发布后,支队部分应用实例生效,等观察一段时间后在推送给所有的应用) 1. 权限管理,发布审核,操作审计 1. 客户端配置信息监控(方便的看到配置被哪些实例使用) 1. 支持多种语言,java和.net ,通过http接口使用也是支持的; 1. 提供开放平台api给到其它系统修改和发布操作; 1. 部署简单 # 后台使用 [后台界面操作](https://github.com/ctripcorp/apollo/wiki/Apollo%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97) [客户端接入文档](https://github.com/ctripcorp/apollo/wiki/Java%E5%AE%A2%E6%88%B7%E7%AB%AF%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97) ## 后台操作 1. 创建项目 1. 分配管理员,(管理项目的权限分配,创建集群,创建namespace) 1. 分配配置的修改和发布权限 1. 添加配置项 ,修改配置项 1. 发布配置,回滚配置; 1. 读取配置是在应用端使用; 具体见客户端接入文档; **公共组件的操作** > 公共组件: 提供给应用使用的其它组织的客户端代码,比如cat的客户端;本质上也是应用的一部分; *区别* : 通常情况下,公共组件的使用的配置由原始开发团队维护,但是实际的应用在运行时,环境不一样,所以我们也允许应用在实际使用的时候能够覆盖公共组件的部分配置; 需要自己创建自己唯一的namespace ; 公共组件的操作 1. 创建项目 1. 分配项目管理员权限 1. 创建namespace 1. 添加配置项,发布; 1. 公共配置的读取 1. 应用关联公共组件并覆盖公共组件的配置项 **集群独立配置** 1. 添加集群,默认集群; 1. 多个appId使用同一份配置 1. 同公共组件,关联namespace,写入公共配置,或者覆盖公共配置 **灰度发布** 操作 1. 创建灰度 1. 灰度配置 1. 灰度规则的新增,修改 1. 灰度发布 1. 全量发布,放弃灰度 1. 发布历史 ## 客户端接入 > 要求:jdk1.7+ , guava15.0+ > **客户端配置参数** 1. app.id (systemProperty > System Environment > springboot application.properties > META-INF/app.properties) 对应项目的id 1. apollo.meta 访问地址 (SystemProperty > SpringBoot > SystemEnvironment>/opt/settings/server.properties > app.properties) 1. 本地缓存路径 /opt/data/{appId}/config-cache/ key: apollo.cacheDir 1. 环境配置 key : env 1. 集群配置 key: apollo.cluster **客户端依赖** ```标签:程序 content 缓存 集中管理 配置参数 mysql 界面 location xml配置
原文地址:https://www.cnblogs.com/snidget/p/11359575.html