携程apollo配置中心部署与应用历程

本文只讲述记录公司apollo的部署和应用,前期apollo架构原理请自行查阅不再赘述

https://blog.csdn.net/u014225733/article/details/102694884

https://blog.csdn.net/xp_zyl/article/details/82111702?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param

 

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注入模式无法自动更新需要配合使用EnvironmentChangeEvent或@RefreshScope

b.日志的问题https://www.jianshu.com/p/b2a6d487be3a1.3.0client版本仍然无法解决不知道什么原因待排查

手动加载的方式可解决。这样我们的配置文件就变得更加简洁将各个环境配置都迁入apollo,不足的是一些需要提前加载的需要手动加载

最后我们发现在服务器上不方便对app.properties做修改启动,于是重新引入apollo-env.properties单独对meta地址做变更
启动时用-Denv来指定切换环境,需要注意此时的spring.profiles.active只用来作为logback的打印策略。

 

 

 2020-10-10 续上client1.3.0的版本logback一直无法迁移apollo(手动加载变相迁移)

不得不说实践出真章。

 

 至此所有配置全部迁移apollo配置中心。

 
posted @ 2020-10-09 09:22  大背头  阅读(685)  评论(0编辑  收藏  举报