Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。
服务端基于Spring Boot和Spring Cloud开发,打包后可以直接运行,不需要额外安装Tomcat等应用容器。
阿波罗配置说明:
1、创建项目
2、添加namespace(可自建或关联已有的公共namespace)
3、出现下面界面时说明创建成功
springboot项目配置说明(本人目前使用的是api方式,方便快捷)
1、引入maven(建议是1.1.0以上,不然会出现各种奇妙问题)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201123151752642.png#pic_center
<dependency>
<groupId>com.ctrip.framework.apollo</groupId>
<artifactId>apollo-client</artifactId>
<version>1.1.0</version>
</dependency>
2、配置application.yml
app:
id: xxx-server
apollo:
bootstrap:
enable: true
namespaces: application, xxx, yyy,zzz (可配多个namespace)
meta: http://10.12.13.11:8080
3、代码里获取apollo配置(此处可配合缓存使用,避免频繁远程调用阿波罗,降低性能)
Config config = ConfigService.getConfig("namespace名称");
String value= config.getProperty("namespace下的key", null);
4、可设置监听器,apollo上有配置变动,可以自动推送
// 手动配置 apolloConfigListener,添加配置改动监听
ConfigChangeListener configChangeListener = new ConfigChangeListener() {
@Override
public void onChange(ConfigChangeEvent configChangeEvent) {
ConfigChange change;
for (String key : configChangeEvent.changedKeys()) {
change = configChangeEvent.getChange(key);
// 打印改动的配置信息
LOGGER.info("监听到阿波罗的配置变化,Change - key: {}, oldValue: {}, newValue: {}, changeType: {}",
change.getPropertyName(), change.getOldValue(), change.getNewValue(),
change.getChangeType());
}
}
};
ConfigService.getConfig("namespace名称").addChangeListener(configChangeListener);