TraceId多线程传递
-
在当前线程中创建一个新的线程,或者在当前线程中创建一个新的任务丢到线程池中去运行,这种场景比较适合使用ttl去解决
-
如果你用的是阻塞队列的消费模式,这种模式下并不会产生新的线程,那么ttl也没有用,只能通过传参的方式附加到你丢尽队列的数据中去,然后使用MDC.put的方式在当前线程创建traceId,记得clear()
-
其它消息类的就不说了,大部分都是通过header传递traceId
其它:关于链路追踪这块我目前使用的是sleuth框架,里面集成的brave提供了对很多中间件的支持,包括数据库、消息队列等等。