写在前面
Apollo官方文档写的还是很详细的,但是坑怎么来的呢,没错就是我自己没有好好看文档了。。。
这里附上GitHub:https://github.com/ctripcorp/apollo
简介一下
简单说下,Apollo分为三个服务:ConfigService、AdminService、Portal。采用分布式部署的话,不同的环境需要部署ConfigService和AdminService,而portal只需部署一套即可。
踩坑记录
坑1
ConfigService和AdminService启动时会把自己注册到MetaService中,而ConfigService本身就是Meta。所以在某些时候最好在配置文件(apollo-adminservice或apollo-configservice 的bootstrap.yml文件)中以下方式,否则可能会存在客户端只能获取到对应的内网IP,而导致失败。
eureka:
instance:
ip-address: ${指定的IP} //此处只填部署Eureka服务的IP
preferIpAddress: true
坑2
我在部署的时候遇到个问题,始终没有解决————在腾讯云服务器上部署时,无论是官方提供的demo,还是docker的quick-start都启动失败。后面换到阿里云服务器就没有出现过这个问题,我想应该是我的问题吧?哈哈。
坑3
由于引入了配置文件加密的包——jasypt-spring-boot-starter,而导致应用中使用@value的字段无法实时更新,最终发现在issue中大家也遇到相同的问题。解决方案是降级jasypt-spring-boot-starter的版本到1.16,后续即可正常使用。