alibaba / jvm-sandbox

Real - time non-invasive AOP framework container based on JVM
GNU Lesser General Public License v3.0
6.69k stars 1.55k forks source link

录制接口时,异步触发子调用,无法获取到完整的所有子调用 #448

Closed yu120 closed 2 months ago

yu120 commented 8 months ago

录制HTTP接口,接口内部有一段业务逻辑是通过JDK线程池提交后异步执行,此时HTTP接口响应返回了,可能异步执行的子调用的BeforeEvent或ReturnEvent都还没有收到,就会导致该HTTP接口缺少这部分异步的子调用。

针对该场景有什么好的解决办法吗?

z529192557 commented 6 months ago
  1. 涉及到录制的上下文是否有能力在多个线程中传递,多个线程上下文共用一个traceId来关联(使用TTL等技术可以解决)
  2. 主线程,子线程分别上报自己的调用信息
  3. 由数据处理中心根据traceId重新关联调用信息