【发布时间】:2020-04-06 13:18:03
【问题描述】:
我使用springcloud搭建系统,包括很多微服务。对于一些接口调用,我使用@LoadBalance注解的resttemplate实现负载均衡,并使用eureka作为注册中心。但是,当我在不同的微服务之间调用接口时,resttemplate有时会连接到错误的服务。比如我有服务A、B、C,当服务A调用服务B的接口时,@LoadBalance注解的resttemplate会先通过服务名从eureka中找到实际的ip&port,然后构建实际的url发送请求到target服务器,但有时,当我调用服务 B 的接口时,它会找到服务 C 的 ip&port,这会导致调用失败。这种情况很少发生但神经消失了,我已经困扰了很长时间,谁能给我一些建议?谢谢。
【问题讨论】:
-
您能展示一下您是如何构建其余模板的吗?你用的是什么版本?
-
感谢您的关注,我昨天才知道原因:这是spring cloud Dalston.RELEASE(link)中的一个bug,我们正好用这个版本。 Spring cloud 已经在 Dalston.SR2 中修复了这个 bug,现在可以正常工作了。
标签: spring-cloud resttemplate ribbon netflix-eureka netflix-ribbon