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