本文内容总结分布式配置Apollo的在Springboot项目中的使用
以下:
官方文档请看https://github.com/ctripcorp/apollo/wiki
创建应用
首先在Apollo管理平台创建一个应用,注意AppId,程序中会用到。
环境选择
由于我们这里只配置了一个DEV环境,就选择DEV环境,如果有多个环境可以选择相应的环境
添加集群
暂时不会遇到,如果不同集群使用一样的配置,则没有必要创建集群
新增配置
在创建好应用之后,会默认有一个application的namespace,对应的就是Springboot项目中的application.properties配置文件,左上角新增你的配置,可以一条条添加也可以通过文本形式写入。
1 | spring.datasource.url = jdbc:mysql://XXXXXX:3306/demo?useUnicode=true&characterEncoding=utf8 |
这个就是Springboot项目最基本的数据库连接配置以及mybatis相关的配置,这里是直接写到了Apollo配置中心里面,而不是Springboot项目的application.properties里面。
配置好项目之后需要发布才能生效。(注意)
创建Springboot项目
创建一个Springboot的WEB项目,注意这里application.properties配置文件里面只需按照一下配置即可
1 | app.id=应用的ID |
新增Maven依赖
1 | <dependency> |
读取配置
appication配置会默认被读取到程序中,而如果有多个namespace,想要读取特定的namespace中的配置信息时也有很多种读Apollo配置的方式,可通过注解@Value也可以通过@ApolloConfig注解等多种方式,这里推荐使用注解@ApolloConfig,这里演示在Controller层中使用Apollo相关的操作
1 |
|
Tips 尽量不要再一个类中引入两个或多个namespace等配置信息,如果这样做会造成性能下降严重
启动项目
正常启动项目即可,如果在SpringBoot项目启动日志中发现WARN,无法获取配置的情况,请不要忽视,这是因为Apollo的网络策略配置支持内网之间的互相调用和传输,本地测试是要想也可以使用Apollo的功能可以在configservice服务器配置相关启动参数即可,首先进入scripts文件夹,编辑startup.sh文件,启动参数export JAVA_OPTS这一项,在里面参数里面新增
1 | -Deureka.instance.ip-address=你的IP地址 |
重启configservice