Postman请求响应超时自动重试导致的问题

Postman 请求api/front/temp/addIndex/xxx,执行逻辑是从db查询数据简单清洗后向Elasticsearch 写数据,共273万数据,3000条记录/秒,18万/分钟,15分钟完成。

1、现象:
Postman会在响应超时以后先自动重试至少5次,如果还是没有响应结果 才将网关或者nginx返回的504展示。

2、导致的问题
当你没有对请求的任务加锁,会导致任务重复执行。
(1)没有做幂等处理的话,写到es的数据就不准确有重复数据;
(2)并发多个任务高频操作db,给db造成压力,导致cpu飙升到94%,可能拖垮数据库;

3、解决办法
办法1
(1)Postman发送请求后,手动停止Postman的响应等待;
办法2
(1)给任务加分布式任务锁;
(2)写es之前可以判断数据是否存在,不存在才写(初始化es数据的时候不适合这样做)

下面为截图:
1、打印的postman重复请求触发重复获取锁,说明自动重试多次;
image.png
2、postman请求,自动重试因为服务端分布式任务锁获取失败,接口返回200
Postman请求响应超时自动重试导致的问题_第1张图片

你可能感兴趣的:(后端postman)