Spring Cloud Sleuth与Zipkin配合使用

217 阅读2分钟

前言

前面介绍了Spring Cloud Sleuth的基本使用,详细内容可参考Spring Cloud Sleuth初探 ,在服务比较繁多的情况下,查找日志是比较复杂及繁琐的,这个时候需要一个收集服务的定时数据,以解决微服务架构中的延迟问题的工具,没错,它就是Zipkin,今天讲的是Spring Cloud Sleuth与Zipkin配合使用。

Zipkin简介

Zipkin官方网站:zipkin.io/

Github:github.com/openzipkin/…

Zipkin 是 Twitter 的一个开源项目,它基于 Google Dapper 实现的。我们可以使用它来收集各个服务器上请求链路的跟踪数据,并通过它提供的 REST API 接口来辅助查询跟踪数据以实现对分布式系统的监控程序,从而及时发现系统中出现的延迟过高问题。除了面向开发的 API 接口之外,它还提供了方便的 UI 组件来帮助我们直观地搜索跟踪信息和分析请求链路明细,比如可以查询某段时间内各用户请求的处理时间等。

Zipkin 和 Config 结构类似,分为服务端 Server,客户端 Client,客户端就是各个微服务应用。

Zipkin Server搭建

  • 参考Github:github.com/openzipkin/…

  • 使用https://search.maven.org/remote_content?g=io.zipkin.java&a=zipkin-server&v=LATEST&c=exec下载最新版本的Zipkin Server,例如zipkin-server-2.12.9-exec.jar

  • 启动Zipkin-server

    java -jar zipkin.jar
    
  • 访问http://localhost:9411 即可看到Zipkin Server的首页。

整合Zipkin

Spring Cloud Sleuth初探的基础上

  • pom依赖

    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-sleuth-zipkin</artifactId>
    </dependency>
    
  • 增加配置

    spring:
      zipkin:
        base-url: http://localhost:9411
      sleuth:
        sampler:
          # 采样率,模式0.1,也就是10%,为了便于观察效果,改为1.0,也就是100%。生产环境建议保持默认。
          probability: 1.0
    
  • 测试

    启动microservice-usermicroservice-movie 并访问http://localhost:8010/movies/users/1

    查看http://localhost:9411 ZipkinUI界面

    点击可查看详情

    再此点击可查看具体调用细节

    点击Show IDs可查看具体的TraceId、SpanId、parentId,自己可自行测试,通过zipkin就可查看请求的时长,服务之间的调用关系。

    查看服务调用依赖图

    点击服务名称可查看服务的调用与被调用次数,自己可自行测试。

总结

本文主要是简单讲述了Spring Cloud Sleuth整合Zipkin,后面会继续讲述zipkin的进阶使用。