【问题标题】:RestTemplate annotated by @LoadBalanced get wrong service address by service name from eureka sometimes由 @LoadBalanced 注释的 RestTemplate 有时会通过来自 eureka 的服务名称获取错误的服务地址
【发布时间】: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


【解决方案1】:

我昨天才知道原因:这是spring cloud Dalston.RELEASE(https://github.com/spring-cloud/spring-cloud-commons/issues/224)中的一个bug,而我们恰好使用了这个版本。 Spring cloud 已经在 Dalston.SR2 中修复了这个 bug,现在可以正常工作了

【讨论】:

  • 仅供参考,不再支持 Dalston、Edgware 和 Finchley。请升级到格林威治或霍克斯顿。
猜你喜欢
  • 2017-11-14
  • 1970-01-01
  • 2013-12-17
  • 1970-01-01
  • 1970-01-01
  • 2013-03-27
  • 1970-01-01
  • 2018-10-01
  • 2018-01-16
相关资源
最近更新 更多