【发布时间】:2021-12-13 22:16:43
【问题描述】:
假设有一个 微服务 X 必须调用 微服务 Y 的示例场景。需要将后续调用与 Correlation-ID 相关联。 Micoservices 基于 Java (Spring Boot) 并公开 REST 和 GRPC api:
- "X ms" 被称为将 Correlation-Id 传递到 header。
- “X ms”中的拦截器拦截请求并将“somewhere”(例如,对于 JAVA MDC) Correlation-Id
- “X ms”控制器被触发并将业务逻辑的执行委托给业务层中的服务类方法。
- Service 类方法 做了一些事情,并通过从 加载 Correlation-Id 来调用 "Y ms" “某处”
存储上下文数据(如相关 ID)的更好位置是什么?为什么?
- 设计具有特定签名的方法,以便在内部方法之间传递上下文数据。
- 使用 MDC。
- 使用 ThreadLocal。
- 在需要的地方注入 RequestContext(用于 REST)或使用上下文 (GRPC)
- 其他
谢谢!
【问题讨论】:
标签: java logging microservices thread-local mdc