架构,微服务,分布式

Dubbo根据扩展接口实现分布式调用追踪

2019-03-28  本文已影响17人  任嘉平生愿

dubbo基于调用拦截扩展实现分布式调用追踪 - GAMELOFT9----读万卷书,行万里路,知行合一 - CSDN博客

思路:根据dubbo扩展的filter将每次调用链路服务生成的uuid放在日志中,根据id跟踪服务

步骤

1.扩展filter

<dubbo:provider filter="traceid"/>

2.绑定实现类

traceid=com.gameloft9.demo.filter.TraceDubboFilter

3.实现Filter 的invoke方法

RpcContext context = RpcContext.getContext();

TraceUtil.putTraceInto(context);

TraceUtil.getTraceFrom(context);

4.TraceUtil生成UUID和置值

String traceId = generateTraceId();

setTraceId(traceId);

5.将traceid绑定到logback中的MDC

%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%.15thread] [%X{trace_id}] %logger{36} - %.-4096msg%n

6.消费端调用时加日志

log.info("测试结果:{}",res);

上一篇下一篇

猜你喜欢

热点阅读