在 Java + Dubbo 的系统中,排查故障通常遵循 “分层定位” 的思路:网络 → 注册中心 → 服务状态 → 代码/配置 → 性能。下面给你一套比较实用的排查方法和工具。
先搞清楚是哪一类问题:
Dubbo 日志一般在:
dubbo.access.log(如开启)重点关注:
No provider availableTimeoutSerialization errorFailed to invoke remote method建议开启:
dubbo:
application:
logger: slf4j
provider:
accesslog: true
zkCli.sh
ls /dubbo/com.xxx.Service/providers
常见问题:
Consumer 端日志:
Register directory ... url=xxx
如果没有 URL,说明:
telnet 127.0.0.1 20880
常用命令:
ls
ls -l com.xxx.Service
invoke com.xxx.Service.method(args)
status
可验证:
功能:
适合:
dubbo:
qos:
enable: true
port: 22222
命令:
nc 127.0.0.1 22222
> ls
> offline
> online
检查:
version / group 是否一致排查顺序:
dubbo:
consumer:
timeout: 3000
provider:
timeout: 5000
常见原因:
Serializable检查:
Provider 日志:
Thread pool is EXHAUSTED
解决:
dubbo:
provider:
threads: 200
trace com.xxx.ServiceImpl method
Dubbo 故障排查 = 日志 + 注册中心 + telnet/QoS + 网络 + 线程池
如果你愿意,可以告诉我:
我可以直接帮你定位。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。