Skip to content

Support reactor-netty 1.1.x+ #13447

@ltp-carl

Description

@ltp-carl

版本兼容性分析结论

确认发现

当前 Pinpoint (v3.0.4 / v3.1.0-SNAPSHOT) 不支持 reactor-netty 1.1.x+

原因:

  • Pinpoint 注入 trace header 的唯一拦截点是 HttpClientOperations.followRedirectPredicate(BiPredicate) 方法
  • 该方法在 reactor-netty 1.1.0 (2023年1月) 中已被移除
  • 当前 Pinpoint 代码中没有针对 reactor-netty 1.1.x 的备选拦截方案

代码证据

// ReactorNettyPlugin.java:251-254 - 这是唯一注入 trace header 的地方
final InstrumentMethod sendMethod = target.getDeclaredMethod(
"followRedirectPredicate", // 该方法在 reactor-netty 1.1.0 中已被移除!
"java.util.function.BiPredicate"
);
if (sendMethod != null) { // 新版本中 sendMethod == null,header 不会被注入
sendMethod.addInterceptor(HttpClientOperationsSendInterceptor.class);
}

版本对照表

┌────────────────────┬───────────────┬─────────────────────┬───────────────────┐
│ reactor-netty 版本 │ Pinpoint 支持 │ Spring Boot 版本 │ Spring Cloud 版本 │
├────────────────────┼───────────────┼─────────────────────┼───────────────────┤
│ 1.0.x │ ✅ 支持 │ 2.7.x, 3.0.x, 3.1.x │ 2021.x, 2022.x │
├────────────────────┼───────────────┼─────────────────────┼───────────────────┤
│ 1.1.x │ ❌ 不支持 │ 3.2.x, 3.3.x │ 2023.0.x │
├────────────────────┼───────────────┼─────────────────────┼───────────────────┤
│ 1.2.x │ ❌ 不支持 │ 3.4.x+ │ 2024.x │
└────────────────────┴───────────────┴─────────────────────┴───────────────────┘

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions