在Feign或Spring reactive WebClientHTTP客户端上执行重试时遇到问题。我们正在HTTP请求的标头中设置correlationId(使用带有Feign的拦截器或带有Spring reactive WebClient的过滤器),并且一切正常(我们保留并从SLF4J的MDC获取correlationId,但是当重试机制执行重试调用时,因为重试正在执行不同的线程,我们正在丢失MDC上下文。
因为我们无法控制Resilence4j线程池,所以无法在这些线程中传播MDC上下文。是否有办法传播MDC,创建自定义TaskExecutor,并在Retryer线程池中设置TaskDecorator?
这是预期行为还是我遗漏了什么?
我们正在使用:
弹性4j版本:3.0.2 Java版本:17
先谢谢你
我们尝试在HTTP请求的头中设置correlationId(使用带有Feign客户端的拦截器或带有Spring reactive WebClient的过滤器)。
我们希望使用resilence4j保持和设置MDC上下文以及重试之间的correlationId
1条答案
按热度按时间iszxjhcz1#
我遇到了同样的问题,我通过添加maven依赖项并将application.yml中的自定义属性添加到断路器库中来解决它。application.yml
Maven依赖项为