全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

初始化配置实践(Node.js)

最近更新时间:2025-03-31 11:22:29

简述

Node SDK提供了多种重试等待策略,默认使用指数等待策略,您也可根据需要选择其他等待策略或自定义等待策略。

1.指数等待策略(ExponentialWait)

计算方式

指数等待策略的等待时间随着重试次数的增加呈指数增长,公式如下:delay = multiplier * (2 ^ (retryState - 1))

其中:

  • multiplier:基础等待时间,默认值为 200ms。

  • retryState:当前重试次数。

  • maxInterval:单次最大等待时间,默认值为10s。

增长示例

假设 multiplier = 200msmaxInterval = 10s

  • 第 1 次重试:200ms * (2^0) = 200ms,重试间隔时间为200ms。

  • 第 2 次重试:200ms * (2^1) = 400ms,重试间隔时间为400ms。

  • 第 3 次重试:200ms * (2^2) = 800ms ,重试间隔时间为800ms。

适用场景

适用于需要快速增加等待时间的场景,如网络请求重试,避免短时间内频繁重试导致服务器压力过大。

使用示例
var KS3 = require('ks3'); 
var client = new KS3({
     AK: '<ak>',
     SK: '<sk>', 
     BucketName: '<bucketName>',
     Endpoint: '<endpoint>',
     RetryStrategy: 'ExponentialWait'
})

2.线性等待策略(LinearWait)

计算方式

线性等待策略的等待时间随着重试次数的增加呈线性增长,公式如下:delay = start * retryState

其中:

  • start:基础等待时间,默认值为 200ms。

  • retryState:当前重试次数。

  • maxInterval:单次最大等待时间,默认值为10s。

增长示例

假设 start = 200msmaxDelay = 10s

  • 第 1 次重试:200ms * 1 = 200ms,重试间隔时间为200ms。

  • 第 2 次重试:200ms * 2 = 400ms,重试间隔时间为400ms。

  • 第 3 次重试:200ms * 3 = 600ms ,重试间隔时间为600ms。

适用场景

适用于需要逐步增加等待时间的场景,如任务队列处理,避免短时间内大量重试。

使用示例
var KS3 = require('ks3'); 
var client = new KS3({
     AK: '<ak>',
     SK: '<sk>', 
     BucketName: '<bucketName>',
     Endpoint: '<endpoint>',
     RetryStrategy: 'LinearWait'
})

3.固定等待策略(FixedWait)

计算方式

固定等待策略的等待时间始终为一个固定值,公式如下:delay = fixedInterval

其中:

  • fixedInterval:基础等待时间,默认值为 200ms。

增长示例

假设 fixedInterval = 200ms

  • 第 1 次重试间隔时间为200ms。

  • 第 2 次重试间隔时间为200ms。

  • 第 3 次重试间隔时间为200ms。

适用场景

适用于需要稳定等待时间的场景,如固定间隔的重试逻辑。

使用示例
var KS3 = require('ks3'); 
var client = new KS3({
     AK: '<ak>',
     SK: '<sk>', 
     BucketName: '<bucketName>',
     Endpoint: '<endpoint>',
     RetryStrategy: 'FixedWait'
})

4.抖动等待策略(JitterWait)

计算方式

抖动等待策略的等待时间在初始值的基础上增加一个随机抖动值(大于等于0且小于1),公式如下:delay = initial + (Math.random() * jitter)

其中:

  • initial:初始等待时间,默认值为 200ms

  • jitter:抖动范围,默认值为 500ms

  • 最终等待时间会被限制在 0maxInterval(默认值10s) 之间。

增长示例

假设 initial = 200jitter = 500maxInterval = 10s

  • 第 1 次重试:假设随机数为 0,结果为 200 + 0 * 500 = 200,重试间隔时间为200ms。。

  • 第 2 次重试:假设随机数为 0.8,结果为 200 + 0.8 * 500 = 600,重试间隔时间为600ms。

  • 第 3 次重试:假设随机数为 0.6,结果为 200 + 0.6 * 500 = 500,重试间隔时间为500ms。

适用场景

适用于需要避免重试请求同时到达的场景,如分布式系统中的请求重试,通过抖动减少请求冲突。

使用示例
var KS3 = require('ks3'); 
var client = new KS3({
     AK: '<ak>',
     SK: '<sk>', 
     BucketName: '<bucketName>',
     Endpoint: '<endpoint>',
     RetryStrategy: 'JitterWait'
})

纯净模式常规模式

纯净模式

点击可全屏预览文档内容