RPC 超时,3个方向:上游问题 + 下游问题 + 中间链路问题
一、上游(调用方)原因
-
超时时间设太短
业务本身要 500ms,你超时只设 200ms,必超时。
-
上游线程池耗尽
上游线程不够用,请求发不出去,直接超时。
-
上游 GC 停顿
FullGC 一卡 1~2 秒,RPC 还没发就超时了。
二、下游(服务提供方)原因
-
下游执行慢
-
SQL 慢查询
-
逻辑复杂
-
调用第三方接口慢 → 直接导致超时。
-
-
下游线程池满了
下游忙不过来,请求排队,排到超时。
-
下游 GC 卡顿
下游 FullGC,整个服务卡住。
-
下游资源阻塞
- 数据库锁等待
- Redis 阻塞、
- ◦死锁→ 接口一直不返回。
-
下游机器宕机/假死
直接连不上 = 超时。
三、中间链路原因
-
网络抖动、防火墙、网关限流
-
注册中心问题(Nacos)