线程并发问题记录

Posted by Futari on 2024-09-25
Estimated Reading Time 1 Minutes
Words 376 In Total
Viewed Times

使用ajax同时对一接口发送两个请求,报文不一样,结果应当不同,但是返回结果却有一定几率相同。

排查思路:MP SQL是否错误—>Cloud问题------>Client请求是否遗漏

测试结果:发起双请求——>Controller接收到两个------>Cloud只处理了一个结果,不放掉cloud请求的时候,前端两个结果都不能拿到响应,放掉同时拿到,说明和RPC并发问题有关。

两个请求同时拿到的响应结果不一定是原本哪一条请求对应的请求,说明是随即分配的,两个请求只处理了一次。

初步推断是IAR网关存在屏蔽限流现象,但是之前在十几条请求同时并发时也没有出现响应相同的问题。

排查链路日志:

服务多的情况下,业务问题也是有些难以排查,只能确定大致时间定位相关日志。因此实现一个请求对应一个traceId,在整个请求的全链路中都可以关联起来,可以极大地帮助我们更方便地查询日志。

每个请求的响应头里都会有个 traceId

  • Trace:是追踪,就是程序推进以下,你就可以写个trace输出,所以trace应该会特别多,不过没关系,我们可以设置最低日志级别不让他输出.
  • Trace的级别比debug还要低

如果您喜欢此博客或发现它对您有用,则欢迎对此发表评论。 也欢迎您共享此博客,以便更多人可以参与。 如果博客中使用的图像侵犯了您的版权,请与作者联系以将其删除。 谢谢 !