[英]Passing Correlation Id across Microservices requests: Which is the best strategy?
假設有一個微服務X必須調用微服務Y的示例場景。 需要將后續調用與 Correlation-ID 相關聯。 Micoservices 基於 Java (Spring Boot) 並公開 REST 和 GRPC api:
存儲上下文數據(如相關性 ID)的更好位置是什么,為什么?
謝謝!
我不會使用 ThreadLocal 或 MDC(它基於線程本地),因為如果有一天您想要移動到基於事件循環的服務(例如使用 reactor/web-flux),它將鎖定您的實現細節。
您可以自己在 Context 對象內的方法中傳播上下文,該對象將在您的層之間流動(從控制器到業務邏輯再到 DAL)。 這里的好處是您對此非常明確,這可能是更易於維護的代碼。
您還可以考慮研究 spring sleuth(也與 zipkin 集成)。 它的核心本質上是基於 MDC,但它也應該支持 reactor。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.