Spring Cloud各组件属性配置
- SpringCloud中的大部分问题可以使用配置属性来规避,
Spring Cloud的配置
- Spring Cloud的所有组件配置都在其官方文档的附录中
- Spring Cloud 整合了很多类库,例如Eureka, Ribbon, Feign等,这些组件自身也有一些配置属性,如下:
- Eureka配置:https://github.com/Netflix/eureka/wiki/Configuring-Eureka
- Ribbon配置:https://github.com/Netflix/ribbon/wiki/Programmers-Guide
- Hystrix配置:https://github.com/Netflix/Hystrix/wiki/Configuration
- Turbine配置:https://github.com/Netflix/Turbine/wiki/Configuration
Spring Cloud 常见问题总结
-
Spring Cloud在Camden版本之后就比较稳定,一般来说,问题都不是Spring cloud的bug,因此在之前开发过程中遇到的一些问题,我会排查如下几个地方
-
第一排查配置问题,如下几个案例
- YAML缩进是否正确: 因为缩进导致Spring Cloud应用无法正常启动,或者配置无法正常加载。这种问题可能因为手误造成,尽量先导入JAR通过IDE的自动提示让IDE自己生成对应的配置项,这样可以避免自己输入时候的缩进已经拼写问题。
- 配置属性是否正确:配置属性的写错也是一个非常常见的问题。尽管该问题很低级,但是我相信也是很容易犯错的,因为YAML文件编辑的是吧不想IDE中代码会有编译器自动识别是否正确,往往我们并不能立刻找到错误
- 配置属性的位置是否正确:配置属性位置不正确可能导致应用的不正常。比如
- 应当配在Eureka Client项目上的属性,配置在了Eureka Server项目想。
- 应当写在bootstra.yml中的属性,写在了application.yml中比如:spring.cloud.config.uri:http://localhost:8080
- 应当写在application.yml中的熟悉写在了bootstrap.yml中比如:eureka.client.healthcheck.enabled=true
-
第二排查环境问题,如下案例:
- 环境变量:例如java环境变量,Maven环境变量,Docker容器环境变量等,当引用无法正常工作时,应该确保环境变量配置正确
- 依赖下载是否完整:利用mvn clean package,包问题也是比较棘手的,特别是有墙的情况
- 网络问题:微服务直接通过网络保持通讯,因此网络经常是排查问题的关键。当问题发生时候,可以先排查网络问题。
-
第三代码问题:
- 以上排查后都没问题那很可能代码有问题,例如少注解,缺依赖,这都会导致各种异常,合理设置开发日志级别可以很好的定位问题。
-
排查Spring Cloud自身问题
- 如果确定不是自己问题,我们可以通过DebugSpring Cloud的代码,看是不是框架的bug,给gitHub等平台的Spring Cloud项目组提交issue,然后参考官方恢复,尝试规避相应问题。
上一篇 SpringCloud常见问题总结(一)