zipkin使用_我的Spring Cloud(十):Zipkin 服务跟踪

一、概述

    为什么要有服务跟踪,分布式系统中有很多个服务在相互调用,调用关系是错综复杂的,如果这时出现了问题,我们在进行问题排查的时候,或者在优化架构的时候,工作量就比较大,这时候就需要我们能够准确的跟踪到每个网络请求,了解整个运行流程,如网络请求经过了哪些微服务,在每个微服务里是否有延迟等信息,这样就方便我们排查问题,这时我们就可以使用Spring Cloud Zipkin来实现。

    Spring Cloud Zipkin是一个可以采集并且跟踪分布式系统中请求数据的组件,让开发者可以更加直观的监控到请求在各个微服务所耗费的时间等,Zipkin包括Zipkin Server服务端和Zipkin Client客户端。Zipkin Server服务端是用来采集微服务之间的追踪数据的,通过Zipkin Client客户端完成数据的生成和展示。接下来就让我们进入实战演练!

二、实战!快速搭建Zipkin Server和Zipkin client

    1.创建子工程zipkinServer,pom.xml配置如下:

    
    <dependency>      <groupId>org.springframework.bootgroupId>      <artifactId>spring-boot-starter-webartifactId>    dependency>        <dependency>      <groupId>io.zipkin.javagroupId>      <artifactId>zipkin-serverartifactId>      <version>2.9.4version>    dependency>        <dependency>      <groupId>io.zipkin.javagroupId>      <artifactId>zipkin-autoconfigure-uiartifactId>      <version>2.9.4version>    dependency>

    2.创建配置文件,代码如下:

 server:  port: 9090
    3.创建启动类,代码如下:
package com.zing;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import zipkin.server.internal.EnableZipkinServer;@SpringBootApplication@EnableZipkinServerpublic class ZipkinApplication {  public static void main(String[] args) throws Exception {    SpringApplication.run(ZipkinApplication.class, args);  }}

    注解说明

        * @EnableZipkinServer:声明启动Zipkin Server

    4.创建zipkin Client。创建一个子工程,pom.xml文件配置如下:

    <dependency>      <groupId>org.springframework.cloudgroupId>      <artifactId>spring-cloud-starter-zipkinartifactId>      <version>2.0.2.RELEASEversion>    dependency>

    5.创建配置文件application.yml,配置如下:

server:  port: 8090spring:  application:    name: zipkinclient  sleuth:    web:      client:        enabled: true    sampler:      probability: 1.0  zipkin:    base-url: http://localhost:9090/eureka:  client:    service-url:      defaultZone: http://localhost:8761/eureka/
    属性说明

        * spring.sleuth.web.client.enabled:设置开启请求跟踪

        * spring.sleuth.sampler.probability:设置采样比例,默认是1.0

        * spring.zipkin.base-url:Zipkin Server的地址

    6.创建启动类,代码如下:

package com.zing;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class ZipKinClientApplication {  public static void main(String[] args) throws Exception {    SpringApplication.run(ZipKinClientApplication.class, args);  }}

    7.创建controller进行测试,代码如下:

package com.zing.controller;import org.springframework.beans.factory.annotation.Value;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestController@RequestMapping("/zipkin")public class ZipkinHandler {    @Value("${server.port}")  private String port;    @GetMapping("/index")  public String index() {    return this.port;  }  }

  8.依次启动注册中心,zipkinserver,zipkinclient三个服务,访问 http://localhost:9090/zipkin/ 可出现以下可视化界面:

ad82230a47ddbb70b98b472e380d07b6.png

    9.我们访问一下要跟踪的接口 http://localhost:8090/zipkin/index 显示如下界面:

f8ca41289e12f3c24fa9eca4c537c558.png

    10.再次访问zipkin服务跟踪可视化界面地址http://localhost:9090/zipkin/ ,点击Find Traces按钮进入到如下页面

950bdd3ea1aed5f9bc9e9fb3e360c265.png

    11.点击上图列表中数据,可进入具体展示列表,如下图:

158582a72c836493a018530d1dfd934e.png

    12.点击列表中的数据,即可查看跟踪的服务的详细信息,如下图:

a3cf5cf8ded9567152f3be31631034d1.png

三、总结

    本篇文章我们通过zipkin来对我们微服务之间的请求进行了监控,可以看到一些详细信息,如耗费的时间,具体请求的路径方法都可以看到,以上就是Zipkin的使用。更多精彩内容,请关注下方公众号【Java觉浅】

e48cb0aed9fd5d0ef40b6f24b179aeae.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值