zoukankan      html  css  js  c++  java
  • sleuth、zipkin 分布式链路追踪

    sleuth

    Distributed tracing for Spring Cloud applications, compatiblewith Zipkin, HTrace and log-based(e.g. ELK)tracing.

    Spring cloud Sleuth 是 Spring Cloud 的组成部分之一,为SpringCloud 应用实现了一种分布式追踪解决方案,兼容 Zipkin ,HTrace 和 log-based

    核心概念

    Span 一个工作单元,比如一次RPC 或 Http 请求过程,spanId 变量使用唯一的 64 位ID 标识

    Trace 一条请求调用链路组成的 Span 集合,类似树结构 , TraceId 标识一个Trace

    spring boot 集成 sleuth

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-sleuth</artifactId>
    </dependency>

    zipkin 设计背景

    zipkin 是依据 google 发表的分布式链路追踪系统Dapper 论文 ,由 Twitter开发并开源的。

    还有很多分布式追踪系统,如 naver 的 Pinpoint , Apache 的 HTrace ,阿里的鹰眼 Trace , 京东的Hydra 等

    为什么需要zipkin

    随着业务越来越负责,系统进行各种拆分,一个前端的请求可能需要多次的服务调用才能完成,当请求变慢或不可用,无法知道是哪个服务导致。通过zipkin分布式链路追踪可以解决这些问题

    zipkin 可以将 sleuth 追踪信息可视化

    Zipkin 支持将链路追踪保存到 mysql 数据库,需要首先准备好表

    https://github.com/openzipkin/zipkin/blob/master/zipkin-storage/mysql-v1/src/main/resources/mysql.sql

    spring boot 使用 Zipkin

    jar 包下载地址

    https://dl.bintray.com/openzipkin/maven/io/zipkin/java/zipkin-server/

    准备好表以及 zipkin jar 包后,启动服务

    java -jar zipkin.jar --server.port=8402 --zipkin.storage.type=mysql --zipkin.storage.mysql.db=febs_cloud_base --zipkin.storage.mysql.username=root --zipkin.storage.mysql.password=123456 --zipkin.storage.mysql.host=localhost --zipkin.storage.mysql.port=3306 --zipkin.collector.rabbitmq.addresses=localhost:5672 --zipkin.collector.rabbitmq.username=febs --zipkin.collector.rabbitmq.password=123456

    此处 zipkin 是通过读取 rabbitMQ 的消息,因此项目需要集成改消息队列

    项目依赖

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-zipkin</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.amqp</groupId>
        <artifactId>spring-rabbit</artifactId>
    </dependency>

    yml 配置文件指定 rabbitmq

    spring:
      zipkin:
        sender:
          type: rabbit
      sleuth:
        sampler:
          probability: 1
      rabbitmq:
        host: localhost
        port: 5672
        username: febs
        password: 123456

    通过浏览器打开 zipkin ui

    上述是采用 sleuth rabbitmq zipkin 的优化版本,也可以单独的使用 sleuth + zipkin 进行链路查看

    参考:https://blog.csdn.net/forezp/article/details/70162074

    sleuth 原理: https://zhuanlan.zhihu.com/p/176481130

    看云:https://www.kancloud.cn/mrbird/spring-cloud/1263713

    zipkin: https://www.jianshu.com/p/5df2e83d0ef8

  • 相关阅读:
    P2426 删数
    P2115 [USACO14MAR]破坏Sabotage
    P2679 子串
    P2979 [USACO10JAN]奶酪塔Cheese Towers
    P1114 “非常男女”计划
    P2105 K皇后
    P4053 [JSOI2007]建筑抢修
    P1294 高手去散步
    P4316 绿豆蛙的归宿
    P2253 好一个一中腰鼓!
  • 原文地址:https://www.cnblogs.com/bytecodebuffer/p/14525168.html
Copyright © 2011-2022 走看看