sleuth+zipkin 调用追踪全量日志方案

spring cloud中的zipkin日志统计是由sleuth客户端和zipkin服务器组成。 sleuth收集客端trace,通过mq将trace发送到zipkin服务器。

zipkin 做持久化和查询展示功能。常用kafka+zk集群作为mq将信息由客户端发往服务器,elasticsearch用于trace存储。

存在以下问题:

1.大量trace发往zipkin很容易崩溃,通常不能做全量记录。

2.如果zipkin崩溃或者mq出现问题会导致trace丢失。

解决:

a.不引入mq依赖,使用日志记录调用信息。

    @Bean
    public Reporter<Span> reporter(){
        return span ->  { logger.info(span.toString()); }; //输出到trace日志文件
    }

    @Bean
    public Sampler sleuthTraceSampler() {
        return Sampler.ALWAYS_SAMPLE;
    } //全量记录

b.使用elk日志方案将日志导入到trace专用索引。

c.zipkin对数据包括收集和查询展示两模块。我正常配置zipkin+es,就ok了。只是没有不使用收集模块。

猜你喜欢

转载自www.cnblogs.com/nullAndValue/p/10129224.html