微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Micronaut 中,如何将 MDC 应用于注入的 RxHttpClient 线程

如何解决在 Micronaut 中,如何将 MDC 应用于注入的 RxHttpClient 线程

我有一个注入 RxHttpClient 的 bean:

  @Inject
  @Client
  RxHttpClient httpClient;

我正在使用 micronaut-tracing (2.0.3) 在我的调用中应用 MDC 值(隐式使用 MdcInstrumenter)。一些线程获取 MDC 值,并且可以记录我存储在 MDC 中的请求 ID,但其他线程则不会。

您可以在这里看到它不依赖于日志级别,而是取决于使用的线程。本例中的请求id为“d1dc24dc-32af-4699-950c-350efd630350”,logback配置在缺失时将[none]放在日志行中。

11:11:21.560 [pool-1-thread-2] [d1dc24dc-32af-4699-950c-350efd630350] DEBUG c.m.verify.client.Client - #Check Loading group,path:[/v2/groups]
11:11:21.666 [nioEventLoopGroup-1-8] [none] DEBUG i.m.h.client.netty.DefaultHttpClient - Sending HTTP Request: GET /v2/groups
11:11:22.088 [pool-1-thread-2] [d1dc24dc-32af-4699-950c-350efd630350] DEBUG c.m.verify.Factory - #Check Group loaded
11:11:23.486 [pool-1-thread-2] [d1dc24dc-32af-4699-950c-350efd630350] DEBUG c.m.v.controller.CheckController - Check for id: [6]
11:11:23.489 [nioEventLoopGroup-1-9] [none] DEBUG i.m.h.client.netty.DefaultHttpClient - Sending HTTP Request: GET /request
11:11:23.489 [nioEventLoopGroup-1-9] [none] DEBUG i.m.h.client.netty.DefaultHttpClient - Chosen Server: localhost(6080)
11:11:23.567 [nioEventLoopGroup-1-4] [d1dc24dc-32af-4699-950c-350efd630350] ERROR c.m.v.controller.CheckController - Check Could not be completed for id :[6]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。