Apollo配置中心
一、简介
Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。
服务端基于Spring Boot和Spring Cloud开发,打包后可以直接运行,不需要额外的安装Tomcat等应用容器。
目前支持一下客户端:Java客户端不依赖任何框架,能够运行于所有Java运行环境,同事对Spring/Spring Boot环境也有较好的支持。.Net客户端不依赖任何框架,能够运行于所有.Net运行时环境。
Apollo更多介绍:https://github.com/ctripcorp/apollo。
Apollo支持4个维度管理Key-Value格式的配置:
- application (应用)
- environment (环境)
- cluster (集群)
- namespace (命名空间)
Apollo的优势还可以通过与Spring Cloud Config对比来体现出:
二、Apollo工作流程图
四、环境搭建
4.1、搭建前提
环境搭建也是参考官网的环境搭建,我们在搭建apollo配置中心的时候选择一个合适的版本,在 官网 的 Relase Notes中:版本发布历史,官方推荐,我们选择源码编译安装:
4.2、上传apollo客户端至nexus私服仓库
说明:这个客户端是开发那边编译打包的时候需要依赖的jar包,不然怎么知道我需要下载哪里的配置文件
apollo-1.2.0.pom apollo-client-1.2.0.jar apollo-core-1.2.0.jar
1. apollo-1.2.0.pom的坐标为:
<dependency> <groupId>com.ctrip.framework.apollo</groupId> <artifactId>apollo</artifactId> <version>1.2.0</version> <type>pom</type> </dependency>
2.apollo-client.jar坐标为:
<dependency> <groupId>com.ctrip.framework.apollo</groupId> <artifactId>apollo-client</artifactId> <version>1.2.0</version> </dependency>
3.apollo-core.jar坐标为:
<dependency> <groupId>com.ctrip.framework.apollo</groupId> <artifactId>apollo-core</artifactId> <version>1.2.0</version> </dependency>
这些在我们的源码包里面分别存在于:
但是在编译之前先要增加apollo-env.properties文件,在client和core中:
C:\Users\3\Desktop\apollo-1.2.0\apollo-core\src\main\resources\apollo-env.properties
apollo-env.properties的内容如下:各个环境配置的地址。
dev.meta=http://192.168.202.218:18080 fat.meta=http://192.168.202.219:18080 uat.meta=http://192.168.202.220:18080 pro.meta=http://192.168.202.221:18080
然后在C:\Users\3\Desktop\apollo-1.2.0\scripts 下执行:
.\build.bat
编译好之后,上传至nexus上就可以了。
4.3、java客户端使用
在启动Spring Boot的java文件中添加注解:
@EnableApolloConfig
通过@Value注解即可获取到值 或者 可以以类的方式作为bean加载入Spring,例如
@EnableApolloConfig @Configuration Class A { @Bean public getB() { return new B(); } } Class B { private int x; public void setX(int x) { this.x = x; } public int getX() { return this.x; } }
说明:其他的配置信息,请看官网(https://github.com/ctripcorp/apollo)下:Deployment -> 分布式部署指南