面试题答案
一键面试- 初始重试间隔:
- 作用:定义首次重试等待的时间。在获取锁失败后,马上进行重试可能会对系统造成较大压力,设置初始重试间隔可以让系统稍作等待后再重试,避免无效且高频的重试请求。
- 最大重试间隔:
- 作用:限制重试等待时间的上限。随着重试次数增加,如果每次等待时间无限增长,可能导致获取锁的时间过长,业务响应缓慢。最大重试间隔能确保重试等待时间不会超过某个合理值,及时结束重试流程,避免业务长时间阻塞。
- 重试次数上限:
- 作用:防止无限重试。如果一直重试获取锁,会占用系统资源且可能导致业务流程无法正常推进。设定重试次数上限,当达到该次数仍未获取到锁时,就停止重试,返回获取锁失败的结果,以便业务进行后续处理。
- 退避因子:
- 作用:用于计算每次重试的间隔时间增量。每次重试的间隔时间通常会根据退避因子逐渐增加,常见做法是初始重试间隔乘以退避因子的幂次方(幂次与重试次数相关)。这样使得重试间隔时间呈指数增长,避免短时间内过于频繁的重试,同时又保持一定的重试频率,提高获取锁成功的概率。