在集群模式下,重试策略不起作用
作者: hheshamazon创建于 2022年9月21日更新于 2026年8月25日
标签stale
哈罗
我试图设置一个Redis集群客户端, 并启用了指数后退但失败了 。
深潜后,我发现根本原因是[连接池取代了再试验战略'选项](https://GitHub.com/luin/ioredis/blob/eabb70ed835828ad85b602a217992486e05d2218/lib/croup/ConnectionPool.ts#L72-L75),我在再选择 ' 中明确规定。
我用下面的片段连接到集群.
const ioredis = 需要 ("ioredis") 互联网档案馆的存檔,存档日期2013-12-21.
组=新碘化物。 集群( [
{
主机: "<redacted>",
港口: 6379,
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
[],{
dns 查找 : (地址, 回调) QQ 回调( 无效, 地址),
复选 : {
:{},
重试策略: 函数( 时间) {
返回时间;
{\fn华文楷体\fs16\1cHE0E0E0}
用户名 : “ <redacted> ”,
密码 : “ <redacted> ”
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
) (中文(简体) ).但接下来我得到“ ioredis: 连接跳过重接, 因为重试策略不是调试日志中的函数 + 0ms 。
我能够可靠地证实, 选择被连接池所压倒。
重接将在下一个插槽刷新周期发生, 这个周期有恒定的节奏, 所以我试图在断开时设置指数后退。
问题:
- 这是故意的行为吗?
- 集束客户端的重试策略的指数后退是什么建议方法? (如果支持的话)
- 是否应当更新客户端文件,以表明群组客户端忽略了这一选项? 或更好,但可以执行一种主张,使问题出现在发展阶段而不是生产阶段。
谢谢 赫萨姆
内容来源: redis/ioredis