具体apollo的安装,请参考本人博客文章:携程apollo linux服务器安装部署及问题记录_chen_lay的博客-CSDN博客
下面介绍springboot集成apollo
一、pom文件中引入apollo依赖
- <dependency>
- <groupId>com.ctrip.framework.apollo</groupId>
- <artifactId>apollo-client</artifactId>
- <version>2.0.1</version>
- </dependency>
二、项目application.yml文件中添加apollo相关的配置
由于不同的环境,需要的apollo配置是不一样的,所以将apollo配置到对应的application-env.yml中即可
例如开发环境,直接将配置到application-dev.yml文件中,
application-dev.yml:
- #apollo相关配置 开始#
- app:
- # 与Apollo Portal上面创建的app id保持一致
- id: mgggyx
- # 项目启动时需要添加启动参数 -Denv=DEV 来指定 apollo环境
- apollo:
- # 就是apollo config server的地址
- meta: http://192.168.2.180:8080
- bootstrap:
- # 是否开启 Apollo
- enabled: true
- eagerLoad:
- # 将 Apollo 加载提到初始化日志系统之前,如果设置为false,则配置中心中修改日志信息不会生效
- enabled: true
- namespaces: application.yml, application
- cacheDir: ./config
- # 刷新时间,单位:分钟,默认5
- refreshInterval: 5
- #对应apollo配置中心环境
- env: DEV
- #apollo相关配置 结束#
注意:apollo配置中心文件默认是.properties,如果apollo配置中心中的配置是放在*.yml文件中,此处的apollo.bootstrap.namespaces参数要完整的加上.yml后缀,否则不会生效。
相关配置的简单介绍如下:
apollo.meta: Apollo 配置中心地址。
apollo.cluster: 指定使用某个集群下的配置。
apollo.bootstrap.enabled: 是否开启 Apollo。
apollo.bootstrap.namespaces : 指定使用哪个 Namespace 的配置,默认 application。
apollo.cacheDir=/opt/data/some-cache-dir: 为了防止配置中心无法连接等问题,Apollo 会自动将配置本地缓存一份。
apollo.autoUpdateInjectedSpringProperties: Spring应用通常会使用 Placeholder 来注入配置,如${someKey:someDefaultValue},冒号前面的是 key,冒号后面的是默认值。如果想关闭 placeholder 在运行时自动更新功能,可以设置为 false。
apollo.bootstrap.eagerLoad.enabled : 将 Apollo 加载提到初始化日志系统之前,如果设置为 false,那么将打印出 Apollo 的日志信息,但是由于打印 Apollo 日志信息需要日志先启动,启动后无法对日志配置进行修改,所以 Apollo 不能管理应用的日志配置,如果设置为 true,那么 Apollo 可以管理日志的配置,但是不能打印出 Apollo 的日志信息。
三、启动类中添加@EnableApolloConfig注解
四、启动项目时,添加JVM启动参数:环境变量
本人使用的intellij idea开发,所以在启动配置中添加即可,如下:
如果是命令启动,启动时直接添加--env=DEV 参数即可
说明:此启动参数由于已在上面的application-dev.yml文件中添加,所以启动时此处不添加也可以,只是项目启动日志会有些别扭,自己根据实际情况自行处理。