微服务开发架构——Spring Cloud常见问题与总结<五>Spring Cloud 定位问题思路总结

原创
2017/11/02 14:13
阅读数 400

个人GitHub地址:https://github.com/leebingbin/

    在使用Spring Cloud的过程中,难免会遇到一些问题。所以对Spring Cloud的常用问题做一些总结。

五、Spring Cloud  定位问题思路总结

    根据市场使用的反馈情况来看,Spring Cloud 进入 Camden 时代后,已经比较稳定。一般来说,问题都不是 Spring Cloud 本身的 Bug 导致。

5.1 排查配置问题

    排查配置有无问题:

    · YAML 缩进是否正确

    一般新手会发现 Spring Cloud 应用程序到自己本地就无法正常启动了,或配置无法正常加载。有时候协助解决的时候,发现仅仅是 YAML 配置文件缩进不正确。类似这样的问题,应在编码的过程中严格规避。

    · 配置属性是否正确

    配置属性写错,也是很常见的问题。别看该问题低级,但不少初学者都会遇到这类问题(尤其是当 IDE 不自动提示或给出警告时,应格外注意)。

    · 配置属性的位置是否正确

    配置属性位置不正确可能会导致应用的不正常,比如:

    -- 应当配置在 Eureka Client 项目中的属性,配置在了 Eureka Server 项目上

    -- 应当写在bootstrap.yml 中的属性,写在了 application.yml 中

    -- 应当写在 application.yml 的属性,写在了 bootstrap.yml 中

5.2 排查环境问题

    如果确认配置无误,即可考虑运行环境是否存在问题。

    · 环境变量

    例如Java环境变量、Maven 环境变量以及 Docker 容器环境变量等。当应用无法正常工作时,应该确保环境变量配置。

    · 依赖下载是否完整

    我在带新入职的一些新手时,他们遇到应用无法正常启动的问题,最终发现仅仅是依赖没有下载完整所致。因此,建议在启动应用之前,使用如下命令打包,从而确认依赖的完整性。

mvn clean package

     · 网络问题

    微服务之间通过网络保持通信,因此,网络常常是排查问题的关键。当问题发生时,可优先排查网络问题。

5.3 排查代码问题

    如经过以上步骤,依然没有定位到 Spring Cloud 的问题,那么可能时编写的代码出了问题。很多时候,常常因为少了某个注解,或是依赖缺失,而导致了各种异常。

    所以合理的日志级别,会对问题的定位有奇效。

5.4 排查 Spring Cloud 自身的问题

    如果确定不是自身代码问题,就可 Debug 一下 Spring Cloud 的代码了。同时,可在 GitHub 等平台给 Spring Cloud 项目组提交 Issue , 然后参考官方文档回复,尝试规避相应问题。如问题无法规避,就需要 Spring Cloud 进行扩展,或者修复 Spring Cloud 的 Bug , 从而满足需求。此时,请不要忘记在 Spring Cloud 的 GitHub 上 Pull Request , 协助官方改进 Spring Cloud, 让 Spring Cloud 更加完善稳定。

 

    Tips: 可参考的资源(在这些地方,均有官方人员参与,可帮助我们迅速解决问题)

    1)各个项目自身的GitHub,例如 Eureka 的GitHub : http://github.com/Netflix/eureka

    2)Spring Cloud 对应项目的 GitHub ,例如 Eureka 项目在 Spring Cloud Netflix 中:http://github.com/spring-cloud/spring-cloud-netflix

    3)Spring Cloud 的 StackOverflow : http://stackoverflow.com/questions/tagged/spring-cloud

    4)Spring Cloud 的 Gitter : http://gitter.im/spring-cloud/spring-cloud

    5)Spring Cloud 中国社区:http://springcloud.cn

 

 

· 关于“Eureka常见问题”可以参考,我之前的文章《微服务开发架构——Spring Cloud常见问题与总结<一>Eureka常见问题》:https://my.oschina.net/u/3375733/blog/1555725 ;

· 关于“Hystrix/Feign 整合Hystrix后首次请求失败”可以参考,我之前的文章《微服务开发架构——Spring Cloud常见问题与总结<二>Hystrix/Feign 整合Hystrix后首次请求失败》:https://my.oschina.net/u/3375733/blog/1558095

· 关于 “Turbine 聚合数据不完整” 可以参考,我之前的文章《微服务开发架构——Spring Cloud常见问题与总结<三>Turbine 聚合数据不完整》:https://my.oschina.net/u/3375733/blog/1559265

· 关于“Spring Cloud 各组件配置属性”可以参考,我之前的文章《微服务开发架构——Spring Cloud常见问题与总结<四>Spring Cloud 各组件配置属性》:https://my.oschina.net/u/3375733/blog/1559677 。

 

本文为博主原创文章,转载请注明出处!

https://my.oschina.net/u/3375733/blog/

展开阅读全文
打赏
0
2 收藏
分享
加载中
更多评论
打赏
0 评论
2 收藏
0
分享
在线直播报名
返回顶部
顶部