У меня есть classA, который работает на Tomcat thread . ClassA поддерживает набор пар ключ-значение MD C.
При выполнении ClassA возвращается MDC.getCopyOfContextMap()
(A = "a", B = "b", C = "c ")
Теперь ClassA вызывает classB, который работает в потоке Hystrix .
Когда мы вводим ClassB, MD C из ClassA копируется и MDC.getCopyOfContextMap()
возвращает (A = "a", B = "b", C = "c").
ClassB устанавливает значение переменной X в MD C. MDC.put("X", String.valueOf("someVal"))
Когда все еще внутри ClassB, MDC.getCopyOfContextMap()
возвращает (A = "a", B = "b", C = "c", X = "someVal").
ClassA получает MD C и пытается получить доступ к переменной X.
MDC.get(X)
Но он получает его как ноль, потому что MDC.getCopyOfContextMap()
возвращает (A = "a", B = "b", C = "c").
Есть предложения, почему MD C не переносится из потока Hystrix в поток Tomcat?