本文只讲述记录公司apollo的部署和应用,前期apollo架构原理请自行查阅不再赘述
https://blog.csdn.net/u014225733/article/details/102694884
1、工程下载及编译
apollo代码官方网址:https://github.com/ctripcorp/apollo 或国内镜像:https://gitee.com/nobodyiam/apollo
推荐下载release下的三个zip包部署code=》tags
a.config=》application-github.properties下是数据库连接配置
b.script下是启动和停的脚本,单服务器的关系,这里要改下startup.sh内配置的端口
c.protal下config=》apollo-env.properties 配置多环境的configservice地址
d.启动的时候出现了日志文件没有权限的问题导致启动失败,赋权即可。/opt/logs/目录
e.后续升级可以通过git切换分支打包替换jar包即可(在根目录下执行mvn clean package -pl apollo-assembly -am -DskipTests=true)
2、部署
由于服务器紧张所以设计了单服务器单数据库多实例的方式(数据库脚本不再赘述)
ps: 注意mysql版本(由于测试数据库版本太低用了公司禅道的数据库=。=禅道默认数据库开启远程连接搞了半天)
ps2:因为同一个服务器上部署的关系,shutdown.sh需要改下,可以偷懒直接kill掉如果要停服务
3、应用
client端一些注入和使用基本可以查阅到。简单强调下
a.apollo的配置是优先于application.yml的properties的可查阅启动顺序。
b.一些需要装载的如日志级别需要增加监听来重置,因为配置是实时改掉了但是装载是不会自动装载的
c.springcloud引入logback的日志组件必须增加bootstrap.yml这块如何迁入apollo待解决=。=
d.多环境的切换有两种方式参考https://blog.csdn.net/a807719447/article/details/91949659
第一种apollo-env.properties文件模式即 先说明我有几种环境然后指定哪种环境
第二种applicaition.properties直接说明我的metaserver地址是多少与spring.profiles.active一样
建议使用第二种,且优先级也是startup.sh>jar包目录下的applicaition.properties>jar包内的applicaition.properties
敲完收工~~~
4、增
a.@ConfigurationProperties注入模式无法自动更新需要配合
手动加载的方式可解决。这样我们的配置文件就变得更加简洁将各个环境配置都迁入apollo,不足的是一些需要提前加载的需要手动加载
最后我们发现在服务器上不方便对app.properties做修改启动,于是重新引入apollo-env.properties单独对meta地址做变更
启动时用-Denv来指定切换环境,需要注意此时的spring.profiles.active只用来作为logback的打印策略。
2020-10-10 续上client1.3.0的版本logback一直无法迁移apollo(手动加载变相迁移)
不得不说实践出真章。
至此所有配置全部迁移apollo配置中心。