zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    eventbus3-intellij-plugin插件搜不到
    flutter控件之CheckBox
    Java中常见数据结构:list与map -底层如何实现
    flutter控件之RadioButton
    git add Untracked files
    执行git push出现"Everything up-to-date"
    用flutter写一个精美的登录页面
    Android Studio最全插件整理
    Mac下git的环境搭建和基本使用
    上周热点回顾(7.1-7.7)团队
  • 原文地址:https://www.cnblogs.com/bzfsdr/p/11743830.html
Copyright © 2011-2022 走看看