开发者社区 > 云原生 > 正文

dubbo耗时偶尔无故增加 consumer端打印的耗时明显大于provider耗时

环境信息

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

展开
收起
大圣东游 2023-05-11 20:12:35 255 0
1 条回答
写回答
取消 提交回答
  • 理论上默认拦截器也不会很长的耗时的,但个人理解目前你的时间统计方式是不准确的,可能会影响排查问题。

    dubbo的调用顺序是 调用方 -> 调用方拦截器 -> 网络 -> 提供方拦截器 -> 提供方统计开始时间 -> 业务 调用方 <- 调用方拦截器 <- 网络 <- 提供方拦截器 <- 提供方统计结束时间 <- 业务

    提供一个思路,可以看下是不是dubbo的拦截器造成的:

    调用方记录时间 -> 调用方拦截器 ->增加一个拦截器(再次统计时间) -> 网络 -> 提供方统计开始时间(增加最外层拦截器统计) -> 提供方拦截器 -> 再次统计时间 -> 业务

    原回答者GitHub用户lkj41110

    2023-05-12 12:11:28
    赞同 展开评论 打赏

阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。

相关电子书

更多
Dubbo开源现状与2.7规划 立即下载
Dubbo分布式服务治理实战 立即下载
《Dubbo 3.0 前瞻》 立即下载