最近遇到一个bug,关于重复请求
nginx 部署,l月w日发现,zzzz系统的客户在办理的时候,明明办理成功,但是返回结果是ssss号码已经试用;然后看了一下,果然后台的日志显示接口请求了2次;请求时间相差10s,ip地址不一样;然后返回时间差不多,有时候错误的返回时间更晚,就把正确的覆盖掉。在客户看来,就没有办理成功,但是事实上是办理成功;
验证过程1.在js加上时间戳,因为怀疑js 重复请求2次(如果真的是这个,就肯定)
2.结合后台nginx查看接口请求的情况,发现2条记录里面,只找到一个;
3.确定并不是js请求2次;
4,后来发现,当网咯不稳定,就会出现这样情况,比如正在办理,然后突然信号不好,就会重新请求
解决方法:还没有 sad
----------
补充记录:一个解决方法
1.前端请求接口的时候,带上一个一个时间戳
2.框架调用接口前,用redis检测如果相同sessionid+从前端传入的时间戳在时间间隔30s内,则拦截;
推理问题发生原因:是nginx代理有关啊