Luk*_*s F 4 java thread-local mdc dropwizard
当使用 http 调用它们时,我想将从X-Request-IdNginx 接收到的信息传播到 k8s 中的其他服务。
现在,我正在使用请求过滤器来捕获该X-Request-Id标头并将其放入 MDC。
final String nginxRequestId = requestContext.getHeaderString("X-Request-Id");
if (nginxRequestId != null) {
MDC.put("infra_request", nginxRequestId);
}
Run Code Online (Sandbox Code Playgroud)
现在,我正在 k8s 内调用服务 B 的端点(因此没有 Nginx 的阻碍),我想获取它X-Request-Id以将其放入请求的标头中。我在这里可以看到两个选项:
我可能会使用 MDC 来完成此操作,但我不确定这是否是最佳实践,或者是否存在一些问题/问题。
小智 5
我使用 MDC 和 ThreadLocal 来实现类似的目的,将事务 ID 传递到标头。在内部,MDC 使用 ThreadLocal,它具有一些预定义的功能,例如为每个日志添加前缀。如果您放置的数据有一定的业务用途,我建议使用 ThreadLocal,否则,您可以使用 MDC。
| 归档时间: |
|
| 查看次数: |
6027 次 |
| 最近记录: |