Ribbon整合Eureka,出现 No instances available for XXX 异常
请观察这里的片段有没有问题?
@Bean @LoadBalanced public RestTemplate restTemplate() { return new RestTemplate(); } @Autowired private RestTemplate restTemplate; @Autowired private LoadBalancerClient loadBalancerClient; @RequestMapping(value = "/hi") @ResponseBody public String hi() { ServiceInstance instance = loadBalancerClient.choose("HELLO"); URI helloUri = URI.create(String.format("http://%s:%s/hello", instance.getHost(), instance.getPort())); System.out.println("Target service uri = "+helloUri.toString()); return restTemplate.getForObject(helloUri,String.class); }
实际上,hi请求映射方法存在问题;问题是 因为 LoadBalancedClient 这里的 choose 根据 Eureka注册的服务名(ServiceId == spring.application.name) 命中一个服务提供者;这里就不能使用 加了 LoadBalanced注解的RestTemplate对象了,因为会根据 host 去eureka查找服务提供者,这样就会抛异常 :No instances available for XXX ,也就是找不到指定的服务ID拉
可以使用2中方式:
LoadBalancerClient 进行手动的http请求;Ribbon集成了Apache HttpClient 、 OkHttp请求客户端使用;怎么使用自己琢磨去吧。。。
1 2 3 4 5 | ribbon: okhttp: enabled: true restclient: enabled: true |
mmp,废了3个小时左右,😭
复制请注明出处,在世界中挣扎的灰太狼
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具