Spring Boot集成apollo配置中心

xiaoxiao2021-02-28  49

1、Appid

确保classpath:/META-INF/app.properties文件存在,并且其中内容形如:app.id=YOUR-APP-ID

服务端的appid

2、Environment

应用在不同的环境可以有不同的配置, Environment可以通过以下3种方式的任意一个配置:

2.1 通过Java的System Property env来指定环境-Denv=YOUR-ENVIRONMENT2.2 通过操作系统的System Environment env来指定环境2.3 通过配置文件来指定env=YOUR-ENVIRONMENT对于Mac/Linux,文件位置为/opt/settings/server.properties对于Windows,文件位置为C:\opt\settings\server.properties目前,env支持以下几个值(大小写不敏感):DEV, FAT, UAT, PRO

服务端的environment

3、本地缓存

Apollo客户端会把从服务端获取到的配置在本地文件系统缓存一份,当去服务器读取配置失败时,会使用本地缓存的。

Mac/Linux: /opt/data/{appId}/config-cache

Windows: C:\opt\data{appId}\config-cache

确保目录存在,且应用有读写权限。

4、通过System Property的方式传入如下信息

Appid:应用的身份信息,保证唯一。 Env:系统环境信息。包含:dev,fat,proMeta server:对应环境的metaserver地址。配置内容为:-Dapp.id=fintech01 -Denv=dev -Ddev_meta=http://172.18.100.168:8887注:app.id对应的值即为通过portal客户端创建项目时填写的应用id。Eclipse设置vm options的方式:项目右键---------》Run As ---------》Run Configurations ---------》选择(x)=Arguments面板 ---------》在VM arguments中,最后位置添加-Dapp.id=fintech01 -Denv=dev -Ddev_meta=http://172.18.100.168:8887 点击 Apply保存。IntelliJ IDEA设置vm options的方式:顶部工具栏---------》Run ---------》Edit configurations ---------》在server视图中,VM options中添加-Dapp.id=fintech01 -Denv=dev -Ddev_meta=http://172.18.100.168:8887,点击保存。

5、pom.xml添加依赖

<dependency> <groupId>com.ctrip.framework.apollo</groupId> <artifactId>apollo-client</artifactId> <version>0.10.2</version> </dependency>

6、代码接入

1.在微服务应用启动中使用apollo配置中心获取配置信息    打开应用对应的启动类Application,在启动类上加上如下注解:@EnableApolloConfig2.应用中获取配置信息的几种方式

2.1.通过@value注解获取配置值 例如: @Value(“${test}”) private String test; 2.2.通过@ConfigurationProperties注入到bean对象中获取配置信息 例如: @ConfigurationProperties(prefix=”test”) Public class Myprop{ private Map<String,String> prop = Maps.newLinkedHashMap(); } 在被spring管理的类中使用: @Autowired private Myprop myprop; prop.getProp().get(“name”); 注:使用这种方式获取的属性值不会实时更新。 2.3.通过@ApolloConfig获取注入的config对象,再通过config对象获取属性值 例如: 在被spring管理的类中使用: @ApolloConfig private Config config; config.getProperty(“name”,null); 2.4.通过java API的方式获取 Config config = ConfigService.getAppConfig(); String someKey = "someKeyFromDefaultNamespace"; String someDefaultValue = "someDefaultValueForTheKey"; String value = config.getProperty(someKey, someDefaultValue); 2.5.在配置文件中获取属性值 例如:在application.properties中, spring.datasource.name=${jdbc.name} spring.datasource.password=${jdbc.password}3.将配置信息迁移至配置中心:     打开配置中心客户端portal系统,找到对应的应用,在应用中配置相应的属性信息。     将对应的本地的配置信息删除(提前做好备份处理)。

    重启应用并测试,能正确读到配置项的内容,例如:数据库可以正常连接等;说明与配置中心对接成功。

转载请注明原文地址: https://www.6miu.com/read-2902374.html

最新回复(0)