java B2B2C Springcloud电子商城系统-Spring Cloud常见问题与总结(四)
一.Spring Cloud定位问题思路总结
Spring Cloud进入Camden时代后,已经比较稳定。一般来说,问题都不是Spring Cloud本身的Bug导致。建议按照如下步骤进行定位。
1.排查配置问题
首先排查配置问题,举几个简单的例子
YALM缩进是否正确
如果YALM配置文件缩进不正确,Spring Cloud应用程序无法正常启动,或配置无法正常加载。
类似问题应该在编码过程中严格避免。
配置属性是否正确
配置属性写错,不少初学者都会遇到这个问题。
很多场景下,这类问题可借助IDE的提示功能来排查——当IDE不自动提示或给出警告时,应格外注意。
配置属性位置是否正确
配置属性位置不正确可能会导致应用的不正常。举几个例子说明:
-应当配置在Eureka Client项目上的属性,配置在了Eureka Server项目上。
-应当些在bootstrap.yml中的属性,写在了application.yml中,例如:
spring: cloud: config: uri: http://localhost:8080/
-应当写在application.yml中的属性,写在了bootstrap.yml中,例如:
eureka.client.healthcheck.enabled=true
2.排查环境问题
若配置无误,即可考虑允许环境问题是否存在,同样举几个例子:
环境变量
例如Java环境变量、Maven环境变量以及Docker容器环境变量等。当应用无法正常工作时,应该确保环境变量配置正确。
依赖下载是否完整
曾经有人遇到无法正常启动的问题,最终发现仅仅是依赖没有下载完整所致。因此,建议在启动应用前,使用以下命令打包,从而确认依赖的完整性。
mvn clean package
网络问题
微服务之间通过网络保持通信,因此,网络常常是排查问题的关键。当问题发生时,可优先排查网络问题。
3.排查代码问题
经过以上步骤,依然没有定位到Spring Cloud的问题,那么可能是编写代码出了问题。很多时候,常常因为少了某个注解,或是依赖缺失,而导致各种异常。
许多场景下,设置合理的日志级别,会对问题定位有奇效。
4.排查Spring Cloud自身问题
如果确定不是自身代码问题,就可Debug一下Spring Cloud的代码了。同时,可在Github等平台给Spring Cloud项目组提交Issue,然后参考官方答复,尝试避免相应问题。如问题无法规避,就需要Spring Cloud进行扩展,或者修复Spring Cloud的Bug,从而满足需求。此时,请不要忘记在Spring Cloud的Github上Pull Request,协助官方改进Spring Cloud,让Spring Cloud更加完善、稳定。
java B2B2C Springcloud电子商城系统
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Netty框架整体架构及源码知识点
Netty概述 Netty是一个高性能、异步事件驱动的NIO框架,它提供了对TCP、UDP和文件传输的支持。作为当前最流行的NIO框架,Netty在互联网领域、大数据分布式计算领域、游戏行业、通信行业等获得了广泛的应用,一些业界著名的开源组件也基于Netty的NIO框架构建。 Netty 利用 Java 高级网络的能力,隐藏其背后的复杂性而提供一个易于使用的 API 构建一个客户端/服务端,其具有高并发、传输快、封装好等特点。 高并发 Netty是一款基于NIO(Nonblocking I/O,非阻塞IO)开发的网络通信框架,对比于BIO(Blocking I/O,阻塞IO),他的并发性能得到了很大提高 。 传输快 Netty的传输快其实也是依赖了NIO的一个特性——零拷贝。 封装好 Netty封装了NIO操作的很多细节,提供易于使用的API,还有心跳、重连机制、拆包粘包方案等特性,使开发者能能够快速高效的构建一个稳健的高并发应用。 Netty框架 Netty项目致力于提供一个异步的、事件驱动的网络应用框架和工具,用于快速开发可维护的、高性能的、高扩展性的服务器和客户端之间的协议。换句...
- 下一篇
java B2B2C源码电子商城系统-Spring Cloud常见问题与总结(二)
在使用Spring Cloud的过程中,难免会遇到一些问题。所以对Spring Cloud的常用问题做一些总结。 一、整合Hystrix后首次请求失败 1.1 原因分析 Hystrix 默认的超时时间是1秒,如果在1秒内得不到响应,就会进入 fallback 逻辑。由于 Spring 的懒加载机制,首次请求往往会比较慢,因此在某些机器(特别是配置低的机器)上,首次请求需要的时间可能就会大于1秒。 1.2 解决方案 有很多方式解决该问题,下面列举几种比较简单的方案: 1) 方法一:为Ribbon配置饥饿加载。 ribbon: eager-load: enabled: true clients: client1,client2 对于Zuul: zuul: ribbon: eager-load: enabled: true 2) 方法二:延长 Hystrix 的超时时间,示例如下 hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds:5000 该配置让 Hystrix 的超时时间改为5秒。 3) 方法...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS关闭SELinux安全模块
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- CentOS7设置SWAP分区,小内存服务器的救世主
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS7安装Docker,走上虚拟化容器引擎之路