【发布时间】:2021-01-07 23:23:05
【问题描述】:
Project Reactor 文档建议 MDC 日志记录采用以下模式:
.doOnEach(logOnNext(r -> LOG.debug("found restaurant {} for ${}", r.getName(), r.getPricePerPerson())))
为了避免包装每个日志调用,自定义订阅者在每个信号之前从 currentContext 填充 MDC,使用 Hooks.onEachOperator(Operators.lift(...) 添加)是个好主意吗?
我的主要问题是:
1.) 在每个信号之前填充 MDC 的成本,即使没有发生日志记录。
2.) 操作员融合:每个操作员上的Operators.lift(...) 是否有效地禁用操作员融合?尝试使用StepVerifier#expectFusion 进行快速测试似乎表明了这一点。如果这是真的,在实践中这对性能有多大影响?
感谢任何输入!
【问题讨论】:
标签: java reactive-programming project-reactor mdc