我们正在尝试使用当前日志(MDC)上下文装饰异步Hazelcast线程。通常,Hazelcast线程可能看起来像:hz._hzInstance_1_xxx.cached.thread-1]
这可能吗?
我们想做类似下面的事情,这是我们如何在Spring的ThreadPoolTaskExecutor中实现线程装饰的方法:
private static class MdcTaskDecorator implements TaskDecorator {
@Override
public Runnable decorate(Runnable runnable) {
Map<String, String> contextMap = MDC.getCopyOfContextMap();
return () -> {
try {
if (contextMap != null) {
MDC.setContextMap(contextMap);
}
runnable.run();
} finally {
MDC.clear();
}
};
}
}
我们通过将线程UUID短暂地附加到我们的Hazelcast映射条目中,实现了我们所追求的目标。然后,我们使用条目中的UUID在每个Hazelcast的异步操作中重置MDC上下文。