spring多环境项目下配置文件-apollo配置中心

apollo配置中心是携程研发的分布式配置中心,能管理不同环境配置,还有集群的配置,配置项修改实时更新生效,最重要的是更改配置不需要重启服务器,并且项目本身脱离了配置文件,整个项目打出来的包都是无状态的,可在不同商户平台拷贝部署,同样提高了运维部署效率,这也是我把项目的配置用apollo管理的主要原因。更多的介绍在github上都可查看,我这里直接记录对接的必要修改和作用。

安装apollo服务端

从github上找到apollo项目:https://github.com/ctripcorp/apollo,按照版本要求准备jdk,mysql环境

Apollo服务端:1.8+
Apollo客户端:1.7+
mysql版本要求:5.6.5+

这些在quick start中有,那里提供了一个apollo-build-scripts项目,里面不是源码,是已经打好的jar包,包括数据库脚本和启动脚本,里面把所有的运行文件都集成到了一个jar包里:apollo-all-in-one.jar

我现在用的是单独的包,一个包含三个:apollo-adminservice.jar,apollo-configservice.jar,apollo-portal.jar,从上面的apollo项目地址可以检出源码

项目中有数据库脚本,两个数据库ApolloPortalDB和ApolloConfigDB初始化脚本,在项目scripts/sql目录下,用这俩脚本初始化数据库

打包得到上面三个jar包,源码中这三个项目里有config和scripts两个目录,config里有数据库的配置文件,scripts里是启动脚本,把这两个目录和对应的项目jar包放在同一目录下,再启动startup.sh

启动jar包,保证当前服务器8070, 8080, 8090端口没有被占用。

三个部署项目目录结构都一样,有用的就是一个jar包,一个config目录,一个scripts目录,注意这里apollo-adminservice.jar和apollo-configservice.jar项目配置的数据库是ApolloConfigDB,apollo-portal.jar配置的数据库是ApolloPortalDB,放好之后执行scripts/startup.sh

项目整合apollo

1、在资源路径resources目录下添加apollo-env.properties,下面配置的不同环境地址可以是同一个,只是我的这个项目分开了,每个环境独立用一个,下面写成对应的环境地址

dev.meta=开发环境地址
fat.meta=测试环境地址
pro.meta=生产环境地址

2、在资源路径resources目录下创建META-INF/app.properties文件

app.id = 应用唯一id

3、上面的apollo配置文件在pom.xml里打包资源配置中加上

4、pom.xml依赖添加apollo-client:

<!--配置中心-->
<dependency>
	<groupId>com.ctrip.framework.apollo</groupId>
	<artifactId>apollo-client</artifactId>
</dependency>

5、在spring配置文件中加上下面标签

<apollo:config />

6、在部署的机器上添加文件/opt/settings/server.properties,这个文件路径和名称不能改,项目启动找的环境就是这个文件,这只是其中一种配置环境选择的方式,其它的就不说了,选择适合自己的就行了,这文件里配置如下:

env=DEV   // 选择DEV环境
apollo.cacheDir=/opt/data/   // 环境变量本地缓存,这个目录要给足读写权限

这个环境变量本地缓存配置上之后,在项目启动后会把配置文件在本地指定目录缓存一份,遇到apollo不可用时依然能从本地环境获取,不影响项目运行。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值