spring cloud ribbon与提供者不在同一台服务器访问失败的问题

本文探讨了在Eureka服务发现机制下,如何解决Ribbon客户端跨服务器访问服务提供者的问题。通过调整配置将服务名称转换为IP地址,实现不同服务器间的服务调用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近这两天一直有一个问题很困惑,那就是ribbon跟提供者以及eureka在同一台服务器的时候访问一切正常,而把ribbon放到其他服务器的时候,虽然同样注册进了eureka,但是却始终访问失败的问题。

这个时候提供者的资源文件如下

spring.application.name=hello-service
eureka.client.service-url.defaultZone=http://peer1:1111/eureka/,http://peer2:1112/eureka

eureka的注册信息如下

150332_VuHy_3768341.png

经过思索,我发现其实是http://HELLO-SERVICE/hello解析不了,因为注册进去的其实只有主机名,也就是说只有相同主机才能解析。所以提供者的资源文件修改如下

spring.application.name=hello-service
eureka.client.service-url.defaultZone=http://peer1:1111/eureka/,http://peer2:1112/eureka
eureka.instance.instance-id=${spring.cloud.client.ipAddress}:${server.port}
eureka.instance.prefer-ip-address=true
eureka.instance.hostname= ${spring.cloud.client.ipAddress}

此时eureka的注册信息如下

151007_QOh0_3768341.png

因为hello-service已经转换成了ip地址,此时用其他服务器注册的ribbon再来访问该提供者时已经一切正常。

转载于:https://my.oschina.net/u/3768341/blog/1671563

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值