dubbo重试机制导致数据库有多条记录
如果开启重试机制,那么,超时之后,会重复调用,这时候,数据库有可能会insert多条记录;关闭重试机制,会直接超时异常;了解到,可以使用幂等性,幂等性具体是怎么实现的,还是没搞懂,求解答
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
如果开启重试机制,那么,超时之后,会重复调用,这时候,数据库有可能会insert多条记录;关闭重试机制,会直接超时异常;了解到,可以使用幂等性,幂等性具体是怎么实现的,还是没搞懂,求解答
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(7)
dubbo的retries设置为0 接口时间超时时间稍微设置长点 我之前就是这样解决的
屏蔽重试
一般是超时才导致的重试,解决方法一个是加长接口超时时间timeout,一个是查看接口为什么会超时,建议第二种
尽量别重试,rpc接口超时了,但是work thread还在工作,所以... 如果可以控制每次请求到同一台机器的话那就加个小粒度的锁;
上面几位的方法都可以,我们项目中没有开启重试,因为很多接口没有保证幂等
可以在redis里存储一个标志位,有重复操作过滤下 。
数据库建立唯一索引,dubbo 重试的时候捕获唯一索引的插入异常,再做处理,不过这种方式比较糙