问题描述:
使用SpringBoot集成dubbo,平时进行开发中debug的时候,会发现消费者调用了三次方法,服务方响应三次;这是因为dubbo默认在服务响应超时之后会重新发送请求,如果是这个远程服务是查询还好,但是如果是数据生成操作的时候,处理延迟了,请求量就会积累成为:3*原请求数。
在日常开发中,习惯如果是查询类、或者结果不会因为调用次数而增加的时候就默认设置,如果是插入等对请求敏感的接口,可以关掉该机制。
之前尝试的设置:
@Reference(retries = 0)
private UserService userService;
但是发现居然无效、无效 。retries = 0 但还是重复请求了。
后来去看源码。发现这个
com.alibaba.dubbo.rpc.cluster.support.FailoverClusterInvoker类里
重连默认值
这里就发现原因了,0+1= 1变量 len最终不是等于1
所以:关闭服务的重连、retries = -1 ;解决问题。
网友评论