`
san_yun
  • 浏览: 2662063 次
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

spring-cloud问题排查

 
阅读更多
### 问题1报错,应用无法启动
org.springframework.core.io.ClassPathResource.getInputStream()抛出异常:

FileNotFoundException:org/springframework/boot/actuate/autoconfigure/HealthIndicatorAutoConfiguration.class cannot be opened because it does not exist



### 原因分析
HealthIndicatorAutoConfiguration 在spring-boot不同版本路径变了
- spring-boot1.x: org.springframework.boot.actuate.autoconfigure.HealthIndicatorAutoConfiguration
- spring-boot2.x:org.springframework.boot.actuate.autoconfigure.health.HealthIndicatorAutoConfiguration


通过debug发现,源头在 HystrixAutoConfiguration,代码如下:

```java
import org.springframework.boot.actuate.autoconfigure.HealthIndicatorAutoConfiguration;
@Configuration
@ConditionalOnClass({ Hystrix.class, HealthIndicator.class })
@AutoConfigureAfter({ HealthIndicatorAutoConfiguration.class })
public class HystrixAutoConfiguration {

}
```
HystrixAutoConfiguration依赖的是spring-boot1.x版本的HealthIndicatorAutoConfiguration,通过升级spring-cloud版本,问题解决。



### 问题2
同样的问题出现在 org/springframework/cloud/netflix/eureka/EurekaClientAutoConfiguration.class

需要分析出 org.springframework.cloud.netflix.eureka.EurekaClientAutoConfiguration被谁用到的。
通过debug发现,在 AutoConfigurationSorter.addToClasses() 发现是org.springframework.cloud.netflix.ribbon.RibbonAutoConfiguration引入的,代码如下:

```java
package org.springframework.cloud.netflix.ribbon;

@Configuration
@Conditional(RibbonAutoConfiguration.RibbonClassesConditions.class)
@RibbonClients
@AutoConfigureAfter(name = "org.springframework.cloud.netflix.eureka.EurekaClientAutoConfiguration")
@AutoConfigureBefore({LoadBalancerAutoConfiguration.class, AsyncLoadBalancerAutoConfiguration.class})
@EnableConfigurationProperties({RibbonEagerLoadProperties.class, ServerIntrospectorProperties.class})
public class RibbonAutoConfiguration {

}
```
可以发现是同样的原因,实际上我们不会使用到RibbonAutoConfiguration,排除掉spring-cloud-netflix-ribbon,问题解决

分享到:
评论

相关推荐

    Spring-Cloud-Admin-master

    在实际开发中,Spring Cloud Admin 可以帮助团队更有效地管理和运维分布式系统,提高问题排查效率。通过监控各个微服务的状态,可以及时发现并处理故障,保证系统的稳定运行。 对于 Java 开发者来说,理解 Spring ...

    springcloud项目,解决unknown问题

    在开发基于Spring Boot和Spring Cloud的应用程序时,经常会遇到各种挑战,其中之一就是“unknown”问题。...总的来说,理解和排查此类问题需要对Spring Boot和Spring Cloud的架构、依赖管理和IDEA的使用有深入理解。

    spring-cloud-demo2-20221020

    7. **分布式追踪**:Spring Cloud Sleuth与Zipkin结合,提供了分布式系统追踪的能力,帮助开发者了解请求在各个服务间的流转情况,便于排查问题。在项目中,可能通过Sleuth收集日志信息,并将它们发送到Zipkin服务器...

    spring-cloud-demo

    - **监控与日志**:集成监控工具如Prometheus和Grafana,以及日志收集系统如ELK或Logstash,以便实时监控系统状态和问题排查。 - **持续集成/持续部署(CI/CD)**:采用Jenkins或GitLab CI/CD,自动化构建和部署。 ...

    spring-cloud-cloudfoundry:Cloudfoundry与Spring Cloud API之间的集成

    3. 监控与日志:集成Cloudfoundry的日志和监控系统,便于对应用的运行状态进行实时监控和问题排查。 总结来说,Spring Cloud Cloudfoundry的集成为开发者提供了强大的工具,让在Cloudfoundry平台上构建和管理微服务...

    spring-cloud-sample.zip

    Sleuth则是分布式追踪解决方案,它集成了Zipkin,能够跟踪微服务间的调用链路,帮助开发者在复杂的微服务环境中定位问题,提高故障排查效率。 以上组件共同构成了Spring Cloud的核心骨架,它们相互协作,构建出一个...

    Spring Cloud OpenFeign示例代码

    7. **日志与调试**:学习如何配置OpenFeign的日志输出,帮助在开发和问题排查时获取更多信息。 通过以上分析,你可以深入理解Spring Cloud OpenFeign的工作原理,掌握如何在微服务架构中使用它来构建高效、可靠的...

    spring-boot级spring-cloud视频教学

    - **审计追踪**:记录应用的访问日志,便于问题排查。 #### 五、Spring Cloud核心知识点详解 1. **Eureka服务发现**: - **服务注册与发现**:Eureka Server作为服务注册中心,各个服务启动后向Eureka Server...

    SpringCloud服务链路追踪(Spring-Cloud-Sleuth)文档

    Spring Cloud Sleuth 是一款针对微服务架构中的服务链路追踪工具,主要用于解决分布式系统中服务调用链路的追踪问题。通过引入Sleuth,开发者可以在微服务间进行追踪,从而更加清晰地了解请求在各个服务间的流转情况...

    itmuch-spring-cloud-book-master.zip

    这样,我们可以在ElasticSearch中收集和分析微服务间的调用链路,帮助优化系统性能和排查问题。 6. **Elasticsearch的监控和健康检查**: 在Spring Boot应用中,可以配置Actuator端点来监控ElasticSearch的健康...

    spring-cloud 整合zipkin实现链路追踪 Demo

    Spring Cloud Zipkin 是一个流行的链路追踪工具,它与 Spring Boot 和 Spring Cloud 结合使用,可以轻松地在微服务架构中实现分布式系统的可观测性。本教程将介绍如何整合 Spring Cloud 与 Zipkin 来实现链路追踪,...

    spring-cloud-alibaba+dubbo+nacos内部服务调用

    6. **监控与日志**:Nacos和Dubbo都提供了丰富的监控和日志接口,可以与Prometheus、ELK Stack等工具集成,实现服务的性能监控和问题排查。 7. **服务安全**:整合Spring Security或OAuth2,可以为服务间通信添加...

    spring-cloud-tencent.zip

    8. **日志分析**:与腾讯云的日志服务对接,便于收集、分析和查询应用日志,提升问题排查效率。 9. **监控与报警**:通过与腾讯云监控系统的集成,可以实时监控服务的运行状态,设置报警阈值,及时发现并解决问题。...

    Wepay-master=spring-cloud、dubbo、spring-boot接入微信、支付宝支付渠道

    8. **日志监控**: 为了便于后期排查问题和性能优化,项目通常会集成日志系统,记录支付过程中的详细信息。这有助于追踪支付状态,及时发现并解决问题。 9. **测试与部署**: 项目在接入微信和支付宝支付渠道后,需要...

    spring-cloud.zip

    Sleuth 是 Spring Cloud 的一个子项目,用于生成和收集微服务间的调用链日志,Zipkin 是一个分布式的追踪系统,它收集 Sleuth 产生的数据,提供实时的服务性能监控和故障排查。 9. **Cloud Gateway**:新一代 API ...

    spring-cloud-static:Spring Cloud网站的静态资源

    - **故障排查**:列出可能出现的问题及解决方案,帮助开发者快速定位和解决问题。 了解并掌握这些文档中的知识,可以帮助开发者更好地理解和使用Spring Cloud,构建出健壮、可扩展的微服务架构。对于Java开发者来说...

    spring-cloud-sleuth-3.1.6(源码)

    - **问题排查**:通过 Sleuth 追踪数据定位生产环境的问题,提供实例解析。 通过对 Spring Cloud Sleuth 3.1.6 源码的深入理解,开发者不仅可以掌握 Sleuth 的工作原理,还能更好地利用其功能,提升微服务系统的可...

    SpringCloud项目源码下载.docx

    根据提供的文件信息,我们可以深入探讨与Spring Cloud相关的知识点。尽管文档标题和描述较为简单,但可以从这些信息中提炼出关于Spring Cloud项目的源码下载、Spring Cloud的基本概念、用途及其核心组件等方面的内容...

    spring-boot-cloud-master.zip

    7. **监控与日志**:Actuator监控服务状态,日志系统记录运行信息,便于问题排查。 通过以上介绍,我们可以看出,Spring Boot Cloud项目是一个复杂且功能强大的微服务系统。理解并掌握这些核心组件,对于构建健壮、...

    pluralsight-spring-cloudconfig-wa-tolls-perf:multiplesight-spring-cloudconfig-wa-tolls性能测试

    7. **故障排查**:当性能下降时,如何定位问题,调试配置服务器和wa-tolls应用。 8. **最佳实践**:学习和实施性能优化策略,如缓存策略、配置优化、数据结构选择等。 9. **代码优化**:对wa-tolls应用进行代码...

Global site tag (gtag.js) - Google Analytics