具体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文件中添加,所以启动时此处不添加也可以,只是项目启动日志会有些别扭,自己根据实际情况自行处理。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐