摘要: 單機應用內,在進程內部,我們可以使用ThreadLocal傳遞應用上下文的方式. 當前的 Spring Secrucity , Spring TransactionManager, Log4J MDC, Struts2 ActionContext等等應用場景隨處可見.
但在是分布式系統下,由于不是在同一個進程內,所以無法使用ThreadLocal. 那么什么是分布式ThreadLocal呢?就是將一個系統中的ThreadLocal信息可以傳遞至下一個系統,將兩者的調用可以關聯起來。如對應用有一個調用,我們生成一個請求ID (traceId),在后面所有分布式系統調用中,可以通過這個traceId將所有調用關聯起來,這樣查找調用日志都將十分方便.
閱讀全文