• SpringCloud学习笔记(十、SpringCloud Sleuth)


    目录:

    • 什么是SpringCloud Sleuth
    • 为什么使用SpringCloud Sleuth
    • 如何使用SpringCloud Sleuth

    什么是SpringCloud Sleuth:

    SpringCloud sleuth是一款分布式跟踪框架,它为SpringCloud提供了很好的跟踪解决方案

    为什么使用SpringCloud Sleuth:

    在分布式系统中,用户的一次请求可能不仅仅是一个简单的http调用了,可能会涉及到很多不同的服务,而当系统越来越复杂的时候那一次调用可能涉及到十几个,甚至更多个服务。

    而当一次请求出现问题的时候,如果没有工具帮助的情况下查起问题来时会非常麻烦。

    那在庞杂的系统中,如何快速发现问题,如何判断服务影响范围,如何梳理服务依赖及依赖的合理性,如何分析链路性能问题及实时容量规划?这些问题sleuth都提供了解决方案。

    使用目的:耗时分析、可视化错误、链路优化

    如何使用SpringCloud Sleuth:

    http拦截方式:

    1、服务端(启动后可访问http://localhost:7070查看zipkin ui)

    )增加maven依赖

     1 <dependency>
     2     <groupId>org.springframework.cloud</groupId>
     3     <artifactId>spring-cloud-starter-sleuth</artifactId>
     4 </dependency>
     5 <dependency>
     6     <groupId>io.zipkin.java</groupId>
     7     <artifactId>zipkin-server</artifactId>
     8 </dependency>
     9 <dependency>
    10     <groupId>io.zipkin.java</groupId>
    11     <artifactId>zipkin-autoconfigure-ui</artifactId>
    12 </dependency>

    )增加properties

    1 spring.application.name=sleuth-server
    2 server.port=7070
    3 
    4 # sleuth不上报数据
    5 spring.sleuth.enabled=false

    )启动类增加@EnableZipkinServer

    2、客户端

    )增加maven依赖

    1 <dependency>
    2     <groupId>org.springframework.cloud</groupId>
    3     <artifactId>spring-cloud-starter-zipkin</artifactId>
    4 </dependency>

    )增加properties配置

    1 # zipkin
    2 spring.sleuth.sampler.percentage=1
    3 spring.zipkin.base-url=http://localhost:7070/

    因为zipkin是基于内存存储的数据,所以当zipkin重启后链路数据会丢失,所以我们需要将调用链的数据持久化(mysql+mq、elasticsearch+mq等等)。

    mysql + mq:

    1、服务端

    )增加maven依赖

     1 <!-- rabbitmq 数据采集 -->
     2 <dependency>
     3     <groupId>io.zipkin.java</groupId>
     4     <artifactId>zipkin-autoconfigure-collector-rabbitmq</artifactId>
     5     <version>2.3.1</version>
     6 </dependency>
     7 <!-- mysql 数据分析 -->
     8 <dependency>
     9     <groupId>io.zipkin.java</groupId>
    10     <artifactId>zipkin-storage-mysql</artifactId>
    11     <version>1.28.0</version>
    12 </dependency>
    13 <dependency>
    14     <groupId>org.springframework.boot</groupId>
    15     <artifactId>spring-boot-starter-jdbc</artifactId>
    16 </dependency>
    17 <dependency>
    18     <groupId>mysql</groupId>
    19     <artifactId>mysql-connector-java</artifactId>
    20     <version>5.1.47</version>
    21 </dependency>

    )注入MySQLStorage

    1 @Bean
    2 public MySQLStorage initMySQLStorage(DataSource datasource) {
    3     return MySQLStorage.builder().datasource(datasource).executor(Runnable::run).build();
    4 }

    )配置mysql与rabbitmq(properties)

     1 spring.datasource.driver-class-name=com.mysql.jdbc.Driver
     2 spring.datasource.name=zipkin
     3 spring.datasource.url=jdbc:mysql://localhost:3306/zipkin?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false
     4 spring.datasource.username=root
     5 spring.datasource.password=1234
     6 
     7 zipkin.storage.type=mysql
     8 zipkin.collector.rabbitmq.addresses=localhost:5672
     9 zipkin.collector.rabbitmq.username=guest
    10 zipkin.collector.rabbitmq.password=guest
    11 zipkin.collector.rabbitmq.queue=zipkin

    2、客户端

    )增加rabbitmq依赖

    1 <dependency>
    2     <groupId>org.springframework.amqp</groupId>
    3     <artifactId>spring-rabbit</artifactId>
    4 </dependency>

    )配置rabbit与zipkin sender type

     1 spring.rabbitmq.host=localhost
     2 spring.rabbitmq.port=5672
     3 spring.rabbitmq.username=guest
     4 spring.rabbitmq.password=guest
     5 
     6 # zipkin
     7 spring.sleuth.sampler.percentage=1
     8 spring.zipkin.base-url=http://localhost:7070/
     9 spring.zipkin.sender.type=rabbit
    10 zipkin.rabbitmq.queue=zipkin
  • 相关阅读:
    sqlite数据库的基本操作
    java-正则表达式判断移动联通电信手机号
    基金新手常识
    Android 心跳包心跳连接 如何实现android和服务器长连接呢?推送消息的原理
    java 设计模式之模板方法
    Android 自定义view实现水波纹效果
    Android中pendingIntent的深入理解
    CentOS 7.X下 -- 配置nginx正向代理支持https
    自动化运维工具saltstack04 -- 之jinja模板
    自动化运维工具saltstack03 -- 之SaltStack的数据系统
  • 原文地址:https://www.cnblogs.com/bzfsdr/p/11743830.html
Copyright © 2020-2023  润新知