上一篇讲了单机服务器日志跟踪系统那么如果系统中使用了 RPC 服务,那么整个流程的日志如何来跟踪呢
方法一:在每个 RPC 方法里面传入 traceId,然后使用 MDC 把传入的 traceId 放入到日志中;这个方法比较 low代码侵入性比较高,一不小心就忘记传 traceId 了
以 dubbo 为例,可以给提供者和消费者添加拦截那想到消费者可以在拦截里面把 traceId 傳过去,提供者那边接收到之后再把 traceId 放到 MDC 里面这里还需要用到 dubbo 的 RpcContext,他的作用就是负责消费者和提供者之前传值我们会把 traceId 通过 RpcContext 的 setAttachment 方法进荇传递。这个方法没有侵入性写业务代码的时候完全可以不关心这块,只要写自己的业务就可以了
如果是 XML 配置那么使用
现在来看看提供者这边的配置
到这里整个配置就完成了。