Spring Cloud sleuth 依赖项在 Spring Boot 堆栈应用程序中抛出 RibbonLoadBalancerClientException

Posted

技术标签:

【中文标题】Spring Cloud sleuth 依赖项在 Spring Boot 堆栈应用程序中抛出 RibbonLoadBalancerClientException【英文标题】:Spring cloud sleuth dependencies throwing RibbonLoadBalancerClientException in Spring boot stack application 【发布时间】:2018-06-18 03:47:12 【问题描述】:

我们计划将 Spring sleuth 集成到我们的 Spring 云微服务应用程序中。但是,当服务 A 使用 RestTemplate 调用服务 B 时,我们会收到 RibbonLoadBalancerClient 异常。请在下面找到堆栈跟踪。

ResponseObject genericResponse = restTemplate.exchange(expandedUrl, HttpMethod.GET, new HttpEntity<>(null), ResponseObject.class).getBody();
Logger.log(DEBUG, "getDetails returned  ", response);
return genericResponse.getData().getInformation();

正在使用的版本如下

Spring Boot:springBootVersion = '1.5.3.RELEASE' Spring Sleuth:spring-cloud-starter-sleuth:1.2.4.RELEASE Spring 云依赖:spring-cloud-services 依赖:1.2.0.RELEASE, spring-cloud-dependencies:Brixton.RELEASE

异常 - 堆栈跟踪: org.springframework.web.util.NestedServletException:处理程序调度失败;嵌套异常是 java.lang.AbstractMethodError: org.springframework.cloud.netflix.ribbon.RibbonLoadBalancerClient.execute(Ljava/lang/String;Lorg/springframework/cloud/client/ServiceInstance;Lorg/springframework/cloud/client/ loadbalancer/LoadBalancerRequest;)Ljava/lang/Object;|在 org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:978)|在 org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)|在 org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)|

【问题讨论】:

布里克斯顿很老了。您可能使用的版本不能一起使用。让 BOM 管理所有版本 【参考方案1】:

您应该使用发布系列来管理版本。 Brixton 也是一个非常古老的发布火车。请升级,不要手动设置库版本。

【讨论】:

以上是关于Spring Cloud sleuth 依赖项在 Spring Boot 堆栈应用程序中抛出 RibbonLoadBalancerClientException的主要内容,如果未能解决你的问题,请参考以下文章

spring-cloud-sleuth简单使用

Spring CloudSpring Cloud之Spring Cloud Sleuth,分布式服务跟踪

浅尝Spring Cloud Sleuth

将 Spring Boot Profile 添加到 Sleuth/Zipkin 日志

Spring cloud sleuth 没有与 Zipkin 一起运行

Spring Cloud Sleuth 在 spring-boot/spring cloud 升级后停止将 X-B3-TraceId 推送到 MDC