SpringCloud FeignClient声明式服务调用采坑记录(A调用服务B/C,B/C重启后必须重启A后才能成功调用配置项)

SpringCloud FeignClient声明式服务调用(A调用服务B/C,B/C重启后必须重启A后才能成功调用配置项采坑记录)

    • [1. 报错(info级别的警告信息)](#1. 报错(info级别的警告信息))
    • [2. 原因:使用了默认了cache负载均衡,或者禁用了ribbonLoadBalancer](#2. 原因:使用了默认了cache负载均衡,或者禁用了ribbonLoadBalancer)
    • [3. 解决](#3. 解决)
    • 参考

SpringCloud 注册中心eureka,配置中心config,其他服务(可随时拓展/缩减节点),feign声明式服务调用,ribbon负载均衡,hytrix熔断等成熟的组件,让SpringCloud上手简单,好用。

遇到一个困扰的问题:服务A,B,C都注册到了同一个注册中心,服务A会Feign调用B/C服务的接口,当B/C服务重启后,假若不重启服务A,则无法调用到接口。

通过restTemplate接口获取B/Cf服务地址并打印,在重启服务B/C前后,均可以看到 原始的ip:port,原始的ip:port+新ip:port,新ip:port,可判断eureka与服务之间是正常通信注册与下线的。

然而为何还是调不到。

可能是负载均衡不对,然后查看启动日志:撇到一行:Spring Cloud LoadBalancer is currently working with the default cache.

1. 报错(info级别的警告信息)

警告⚠完整信息如下:

2. 原因:使用了默认了cache负载均衡,或者禁用了ribbonLoadBalancer

3. 解决

正确的应该如下:

进一步检查配置项发现bootstrap.yml里禁止了ribbonLoadBalancer (⊙﹏⊙)

删掉/或者修改为如下好了,呃呃呃呃...

参考

相关推荐
指令集梦境1 小时前
Cursor + Spring Boot实战:从零写一个RESTful API
spring boot·后端·restful
码云之上2 小时前
聊聊如何设计一个高效、稳定的 Node.js 接入层
前端·后端·node.js
IT_陈寒3 小时前
Vite项目build后路由404了?你可能漏了这个小配置
前端·人工智能·后端
宸津-代码粉碎机4 小时前
Spring AI企业级实战|从RAG优化到Agent多工具调度
java·大数据·人工智能·后端·python·spring
吴佳浩4 小时前
AI Infra 的真相:Go 没输,rust也不是取代
后端·rust·go
喵个咪4 小时前
实时游戏网络协议深度对比:KCP vs WebRTC vs WebSocket
后端·websocket·webrtc
普通网友4 小时前
springboot之集成Elasticsearch
spring boot·后端·elasticsearch
QuZero4 小时前
Guava Cache Deep Dive
java·后端·算法·guava
Volunteer Technology5 小时前
深入理解HttpSecurity的设计
spring·安全框架
leeyi5 小时前
SSE 实时推流 —— Token 怎么一个个蹦出来
后端·agent