springboot整合Apollo配置中心(五)

本篇文章对之前整合Apollo配置中心碰到的一些问题,做一个总结,方便以后回顾和提醒自己避免再犯同样的错误.

  1. 在项目内application.properties中配置Apollo的namespaces值时,启动发现不起作用?
    这个问题不知道是不是因为项目是springboot的问题,在这里配置的namespace值没有起作用,最终处理手段是在@EnableApolloConfig中以数据的形式指定需要的namespace值,比如{'application.yml',{application-pro.yml}等.
  2. 项目已经在8080端口启动,能否修改Apollo指定的端口?
    可以,分两种,第一种方案,直接修改Apollo 的源码,将项目启动的端口统统都修改掉,避免使用8080,8090,8070等端口,然后再重新打包启动.比较麻烦.
    第二种方案,portalService,configService服务放到服务器之后,官方提供了对应的启动脚本--->startup.sh,使用vim命令打开修改其中的服务监听端口,保存退出,重启即可.
  3. 在本地测试时,将所有配置文件移动到Apollo之后,启动发现个别项目的@value值取不到值,启动报错?
    测试的时候碰到这个问题.解决方案是不使用@value注入,而是通过使用spring的BeanFactoryPostProcessor接口,使用相应的beanName来从bean工厂来获取想要的value值.
  4. 读取yaml文件时,报错xxx...stream closed?
    当时是将所有的配置文件都已经放在了Apollo配置中心了,启动项目报了这个错,仔细排查问题,发现是个别类里面通过一些读取yml配置的工具类来获取本地的配置文件,由于已经把配置文件移走了,所以这些方法都失效了.
    解决方案:Apollo配置中心提供了java方法来获取配置内容,可使用替代原来的获取本地配置的替代方案.
    以上仅是我在配置的过程中碰到和解决的问题,还有一些是比较粗心犯得低级错误.官方文档里面也有很多对整合过程中的问题的回答,如果碰到问题,可以去参考.
    传送门:
    常见问题回答
    部署常见问题回答

总结

整合过程虽然已经有官方文档作为参考,但是依然还是有很多问题不断涌现,在遇到问题和解决问题的过程中,编程水平才能提高,只是看看文档而不去实践和总结,永远也学不会.

发布了43 篇原创文章 · 获赞 9 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/u013243938/article/details/103337298