zoukankan      html  css  js  c++  java
  • 每天学点SpringCloud(十二):Zipkin全链路监控

    Zipkin是SpringCloud官方推荐的一款分布式链路监控的组件,使用它我们可以得知每一个请求所经过的节点以及耗时等信息,并且它对代码无任何侵入,我们先来看一下Zipkin给我们提供的UI界面都是提供了哪些信息。

    1. zipkin首页为我们提供了对于调用链路的搜索查询及展示的功能
      1
    2. 第二个选项卡里提供了历史数据的导入功能
      3
    3. 第三个选项卡里展示了各个微服务之间的关系
      3
    4. 我们再次回到首页,我们点开一个调用链路之后就会看到此次链路调用的详情
      3
    5. 现在我们点开详情中的一个service,可以看到此次调用在这个微服务中的详细信息。
      3

    如何使用Zipkin

    虽然在SpringBoot2.0以后官方不推荐我们自定义Zipkin服务端,而是使用官方提供的jar包。但是作为开发者来说,如果不能去看一看源码,修改一些自定义的配置的话就好像生命掌握在别人手里一样,哪天碰到一个莫名奇妙的bug可就不开心了。所以本例中使用zipkin最新2.11.8release版本来构建一个服务端

    1. 创建一个微服务 cloud-demo-zipkin-server
    1. pom.xml
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <dependency>
    <groupId>io.zipkin.java</groupId>
    <artifactId>zipkin-server</artifactId>
    <version>2.11.8</version>
    </dependency>
    <dependency>
    <groupId>io.zipkin.java</groupId>
    <artifactId>zipkin-autoconfigure-ui</artifactId>
    <version>2.11.8</version>
    </dependency>
    <dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
    </dependency>
    2. yml
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    server:
    port: 9411
    spring:
    application:
    name: zipkin-server

    management:
    metrics:
    web:
    server:
    auto-time-requests: false
    eureka:
    client:
    serviceUrl:
    defaultZone: http://localhost:8761/eureka/
    instance:
    prefer-ip-address: true
    3. 启动注解
    1
    2
    3
    @EnableEurekaClient
    @EnableZipkinServer
    @SpringBootApplication

    需要注意的是EnableZipkinServer注解是zipkin2.server.internal包下的。

    2. 创建一个微服务 cloud-demo-zipkin-server

    改造一下我们原先的两个微服务:cloud-demo-consumer-feign-hystrix,cloud-demo-provider

    首先为它们都加上zipkin客户端的依赖

    1
    2
    3
    4
    5
    6
    7
    8
    <dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-sleuth</artifactId>
    </dependency>
    <dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-zipkin</artifactId>
    </dependency>

    yml中指定zipkin-server的url,并且指定日志发送方式为web

    1
    2
    3
    4
    5
    spring:
    zipkin:
    base-url: http://localhost:19411
    sender:
    type: web
    3. 查看结果

    此时我们所有的准备工作已经做好了,我们启动Eureka、zipkin、cloud-demo-consumer-feign-hystrix、cloud-demo-provider几个微服务,调用几次cloud-demo-consumer-feign-hystrix的user/getUser接口。然后访问http://localhost:9411应该就可以看到zipkin的UI界面。

    这个时候可能有的童鞋看到有数据,有的没有数据,这个不是你的配置错了,而是因为zipkin客户端默认收集10%的数据,你可以使用下方的配置更改zipkin的采样频率。

    1
    2
    3
    4
    spring:
    sleuth:
    sampler:
    probability: 1.0

    GitHub地址:https://github.com/shiyujun/spring-cloud-demo。代码所在模块:cloud-demo-zipkin-server,cloud-demo-consumer-feign-hystrix,cloud-demo-provider

    如果对您有所帮助,请记得帮忙点一个star哦

    本文出自http://zhixiang.org.cn,转载请保留。

  • 相关阅读:
    Appium环境搭建
    mysql数据库在Linux下安装与配置
    各模拟器adb连接端口
    MySQL 连接出现 Authentication plugin 'caching_sha2_password' cannot be loaded
    使用pycharm创建django项目
    win10安装docker步骤
    Linux常用命令
    LoadRunner HTTP+Json 接口性能测试
    API性能测试基本性能指标及要求
    Widows自带系统监控工具——24小时监控服务器性能
  • 原文地址:https://www.cnblogs.com/zhixiang-org-cn/p/10082900.html
Copyright © 2011-2022 走看看