我开始使用项目反应堆。有谁知道如何将线程局部变量从一个线程传递到另一个线程?我在Hooks.java
上看到了一些方法,但无法弄清楚推荐的方法是什么。有人可以指向我一些文档或有关如何执行它的代码片段。感谢。
答案 0 :(得分:3)
我在这个github存储库中有一个基于spring-cloud-sleuth实现的工作示例:https://github.com/gumartinm/JavaForFun/tree/master/SpringJava/WebReactive/spring-webreactive-reactor-context-enrich
关键类为:ContextCoreSubscriber.java,SubscriberContext.java,ThreadContextEnrichmentAutoConfiguration.java和UsernameFilter.java
答案 1 :(得分:0)
Reactor不保证Flux
或Mono
运算符链完成的处理将在单个线程上执行。相反,它执行工作窃取并允许用户切换执行上下文。
因此,使用ThreadLocal
并不适合Reactor。
目前在3.1.0
中已经完成了一些工作,提供了一个等价的,至少对于使用Reactor的图书馆作者而言,但尚无定论。
请密切注意3.1.0
,这应该是该版本的主题(并且可能是第二个即将到来的里程碑M2的重点)。