我们有一个遵循微服务架构的分布式应用程序。在我们的一项微服务中,我们遵循生产者-消费者模式。
生产者接收请求,将其持久化到数据库,将请求推送到 BlockingQueue 并将响应发送回客户端。运行在单独线程上的消费者正在监听阻塞队列。在它获得请求对象的那一刻,它会对其执行特定的操作。
生产者收到的请求使用 CompleteableFutures 异步持久化到数据库中。
这里的问题是如何将 TraceId 转发给在消费者线程中处理 requestObject 的方法。因为消费者线程可能会在响应发送给消费者之后很久才处理这些对象。
另外如何跨异步调用转发traceId?
谢谢