从零搭建一个SpringCloud项目之Sleuth+Zipkin(六)

在需要加监控的服务上进行以下操作

一、加入Sleuth

  1. 加依赖
<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-sleuth</artifactId>
 </dependency>

二、加入Zipkin

2.1 使用http的方式

sleuth加入之后是没有界面的,所以我们需要使用Zipkin。

服务端:

  1. 下载Zipkin,下载地址:https://dl.bintray.com/openzipkin/maven/io/zipkin/java/zipkin-server/
  2. 启动zipkin Server

java -jar .\zipkin-server-2.12.9-exec.jar

  1. 进入网页

http://localhost:9411/

客户端:

  1. 加依赖
<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
  1. 加配置文件
spring.zipkin.base-url=http://localhost:9411/
spring.sleuth.web.client.enabled=true
#采样比例,默认0.1,1表示全部上报
spring.sleuth.sampler.probability=1

配置完成,接下来可以在调用接口,然后进入zipkin的网页里查找调用记录了

2.2 升级为使用MQ

因为每次调用微服务接口都要上报数据,服务端的压力就会很大,所以可以选择采用mq的方式进行削峰,解耦

  1. 加参数启动zipkin服务端

RABBIT_ADDRESSES=localhost java -jar ../zipkin-server-2.12.9-exec.jar

  1. 加依赖
<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-stream-binder-rabbit</artifactId>
  </dependency>
  1. 修改参数
#配置zipkin
#spring.zipkin.base-url=http://localhost:9411/
spring.zipkin.sender.type=rabbit
spring.sleuth.web.client.enabled=true
#采样比例,默认0.1,1表示全部上报
spring.sleuth.sampler.probability=1
spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest
spring.rabbitmq.virtual-host=/

再次调用就是使用mq的方式上报了。

2.3 使用数据库存储

目前数据上报都是存在内存中的,zipkin Server重启数据就没了,所以我们可以需要持久化一下,常用的方式是存ES或者mysql,这里演示mysql的做法。

  1. 创建数据库zipkin
  2. 执行官方提供的sql脚本建表

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

  1. 使用以下命令启动

RABBIT_ADDRESSES=localhost STORAGE_TYPE=mysql MYSQL_USER=root MYSQL_PASS=root MYSQL_HOST=localhost MYSQL_TCP_PORT=3306 java -jar zipkin-server-2.12.9-exec.jar

  1. 调用微服务

发现数据库已经开始写入数据,重启zipkin,再查找,数据还在,表示成功

上一篇:zipkin 服务跟踪


下一篇:Sleuth服务跟踪大厂高频面试题:整合-Zipkin