基于Springboot1.5.9+SpringCloud+Zipkin+ELK链路跟踪实现

基于Springboot1.5.9+SpringCloud+Zipkin+ELK链路跟踪实现

  1. 思想实现:

    基于zipkin和feign结合,生成span数据,写到本地文件,然后通过logstash发送到es,通过zipkin-ui或Kibana来展示

  2. 工程包目录介绍:

    zipkin-common 公共组件包,主要实现logback过滤对中文的转义以及本demo重点核心:扩展Zipkin的span发送器

    zipkin-eureka 注册中心

    zipkin-provider-a/b 服务提供

    zipkin-consumer 服务消费

    zipkin-server zipkin链路跟踪UI展示

  3. 扩展Zipkin的span发送器说明:

    3.1 翻Spring-cloud-sleuth-zipkin源码,知道其工作主要线路:

    resources/META-INF/spring.factoires/[ZipkinAutoConfiguration] -->
    [ZipkinSpanReporter] -> [HttpZipkinSpanReporter] ->
    [RestTemplateSender]–> [AsyncReporter] -> [Sender.sendSpans]

    3.2 至于如何封装成Span的不在本文描述范围

    3.3 基于以上我们扩展一个Sender,实现sendSpans方法的实现,改为slf4j日志打印即可将feign产生的Span信息保存到本地文件

    3.4 详情请参考com.xiao.zipkin.common.zipkin包的内容实现

    3.5 logback-spring.xml参考

  4. logstash 配置(待补充):

    ELK环境搭建请自行查阅资料安装

     
    
  5. 更多参考资料:

    构建sleuth+zipkin全链路监控系统

    sleuth+zipkin+kafka+logstash链路追踪二次开发方案

    分布式链路追踪技术对比

  6. Github地址

你可能感兴趣的:(分布式,微服务,链路跟踪)