dubbo接口调用一次但是实际多次爬坑

背景介绍:相同代码,开发环境我们提供的dubbo接口供调用每次没问题,但是测试环境部分接口每次调用一次却发现日志是三次调用或者两次。然后我们开始爬坑。。。

1.我们首先确认了代码完全一直。然后用postman模拟调用,不论是开发还是测试都是一次请求一次调用,完全没问题。

2.消费方:明明页面点击一次调用却又三次调用日志。

分析:通过提供方日志分析:没隔一秒都会被调用一次,这个时候我们怀疑规律有问题开始排查调用方;

          调用方日志分析:同一个接口正常的开发环境调用和响应时间间隔两秒多,没有问题。一次调用一次响应。

why:百度学习一波啊。我的天!!!好多人也这样遇到过。好吧。顺带补习下知识乐。

问题解决原理-dubbo超时重连机制

dubbo有这样几个机制

1、如果超时,但是最终返回了正确结果,只是warn,依旧按照正常流程走下去。

2、dubbo:provider 可以设置超时时间 timout,以及如果超时允许被重连的次数 retries

3、dubbo:reference  可以设置超时时间,以及如果超时 timout,允许重连服务的次数 retries

4、dubbo:reference retries 的默认值和consumer一样,而consumer默认为2次

<dubbo:consumer>retriesdefault.retriesint可选2

 

 

5、说明客户端的配置优先级高于服务端的优先级。

 

这就是问题的关键点:看代码,调用方没有默认取dubbo服务时间。这个时间正好就是1秒重连机制。最后我们修改调用方的dubbo接口添加: timout=“60000” retries="0"!!!完美的解决了问题。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值