一、安装配置
(一)安装Apollo
(二)创建数据库
(三)启动Apollo
1.启动
2.访问
apollo-portal-8070
页面管理工具
apollo-configserver-8080
每个服务下都有一个这个服务,用于读取配置
apollo-adminserver-8090
服务配置的修改与发布
二、配置与读取
(一)配置默认集群的配置
1.配置部门
2.添加用户
3.删除项目
4.资源授权
5.公共配置
新增项目
添加配置
将上面的公用配置添加到此微服务上
对于关联过来的配置公共要进行个性化配置时公共的不会变,个性化的内容会替代公共的内容
(二)配置其它集群的配置
新建集群
默认情况下本项目的默认集群中私有的配置名在新建的集群中会存在但是没得属性
给新集群同步默认集群的配置
(三)读取默认集群的配置
1.核心概念
2.默认有一个default集群
3.读取默认集群的配置
读取默认的配置
读取关联配置的path属性
(四)读取其它集群的配置
1.指定集群
读取默认的配置
读取关联配置的path属性
(五)注解方式读取配置
1.配置依赖
<!--apollo客户端-->
<dependency>
<groupId>com.ctrip.framework.apollo</groupId>
<artifactId>apollo-client</artifactId>
<version>1.1.2</version>
</dependency>
//在启动类上加入namespace名
@ComponentScan(basePackages = {"com.zlinepay.qr.cloud.services.*.api.feign.*",
"com.zlinepay.qr.cloud.services.notify","com.zlinepay.qr.cloud.base"})
@EnableApolloConfig(value = {"application","01.application"})
public class NotifyApplication {
public static String applicationName;
@Value("${spring.application.name}")
private void setApplicationName(String applicationName) {
NotifyApplication.applicationName = applicationName;
}
public static void main(String[] args) {
SpringApplication.run(NotifyApplication.class, args);
}
}
2.本地模式启动
三、配置发布原理
configservice推送到客户端或者客户端主动拉取。
(一)客户端如何得知有配置更新?
(二)客户端如何获取最新配置?
1.ConfigService推送
2.客户端拉取
四、灰度版本
多个服务公用一个namespace配置,此时如果只想让指定的服务使用修改或新增的配置,等执行没问题后进行全量发布。
1.创建灰度
2.修改配置主版本配置
3. 配置灰度规则
4.灰度发布
64变为3000
其它的还是原来的值没有变化
五、灰度版本
(一)使配置在更早的阶段注入
apollo.bootstrap.enabled = true
# will inject 'application', 'FX.apollo' and 'application.yml' namespaces in bootstrap phase
apollo.bootstrap.namespaces = application
配置中心介绍:地址
Apollo使用指南:地址