环境信息
Dubbo version: 2.6.1 Operating System version:linux Java version: 1.8
步骤重现
1、打印provider端执行耗时和consumer端调用provider耗时
2、观察调用
3、大概率consumer打印的调用耗时比provider端打印的耗时多跟多 已算上网络传输时间 并排查网络不存在问题 gc情况也已排除 用的dubbo默认协议
比如 provider端打印的执行耗时大约13ms 同机房网络约1-2ms consumer端也记录了整个dubbo调用的耗时 正常按理说consumer记录的耗时应该在15ms上下 但经常发现consumer记录的调用耗时在40ms以上 而且出现比例很高 约7-8% 这个调用改成普通http调用(不是指dubbo的http调用)后没这个现象 然后在业务低峰也是有同样的现象 说明也不是dubbo线程池或其他池相关的配置问题 初步判定是dubbo其它方面的问题 但具体原因排查没什么思路 不知各位大神有没有遇到过类型的情况 有的话麻烦请教下 谢谢
原提问者GitHub用户wenhsh
理论上默认拦截器也不会很长的耗时的,但个人理解目前你的时间统计方式是不准确的,可能会影响排查问题。
dubbo的调用顺序是 调用方 -> 调用方拦截器 -> 网络 -> 提供方拦截器 -> 提供方统计开始时间 -> 业务 调用方 <- 调用方拦截器 <- 网络 <- 提供方拦截器 <- 提供方统计结束时间 <- 业务
提供一个思路,可以看下是不是dubbo的拦截器造成的:
调用方记录时间 -> 调用方拦截器 ->增加一个拦截器(再次统计时间) -> 网络 -> 提供方统计开始时间(增加最外层拦截器统计) -> 提供方拦截器 -> 再次统计时间 -> 业务
原回答者GitHub用户lkj41110
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。