使用ajax同时对一接口发送两个请求,报文不一样,结果应当不同,但是返回结果却有一定几率相同。
排查思路:MP SQL是否错误—>Cloud问题------>Client请求是否遗漏
测试结果:发起双请求——>Controller接收到两个------>Cloud只处理了一个结果,不放掉cloud请求的时候,前端两个结果都不能拿到响应,放掉同时拿到,说明和RPC并发问题有关。
两个请求同时拿到的响应结果不一定是原本哪一条请求对应的请求,说明是随即分配的,两个请求只处理了一次。
初步推断是IAR网关存在屏蔽限流现象,但是之前在十几条请求同时并发时也没有出现响应相同的问题。
排查链路日志:
服务多的情况下,业务问题也是有些难以排查,只能确定大致时间定位相关日志。因此实现一个请求对应一个traceId,在整个请求的全链路中都可以关联起来,可以极大地帮助我们更方便地查询日志。
每个请求的响应头里都会有个 traceId
- Trace:是追踪,就是程序推进以下,你就可以写个trace输出,所以trace应该会特别多,不过没关系,我们可以设置最低日志级别不让他输出.
- Trace的级别比debug还要低
如果您喜欢此博客或发现它对您有用,则欢迎对此发表评论。 也欢迎您共享此博客,以便更多人可以参与。 如果博客中使用的图像侵犯了您的版权,请与作者联系以将其删除。 谢谢 !