SpringCloud+Zipkin微服务链路跟踪(整合Mysql实现持久化)

1. 下载zipkin-serve

由于SpringBoot1.x版本与SpringBoot2.x版本在整合SpringCloud的时候有很大的区别,所以整合Zipkin也不列外,SpringBoot1.x需要单独搭建zipkin-server端, Spring Boot 2.0 版本之后,官方已不推荐自己搭建定制了,而是直接提供了编译好的 jar 包,不需要手动搭,直接在官网下载一个zipkin-server的jar包即可

jar包下载网址:https://zipkin.io/pages/quickstart.html找到Java点击下载即可

下载下来是这样的一个jar包:

启动方式:java -jar zipkin-server-2.11.8-exec.jar

默认端口号为9411,不建议修改,启动成功后浏览器访问localhost:9411即可看到如下页面:

2. 配置SpringCloud项目(这里以订单调用会员服务为例)

  分别在order和member项目中引入以下依赖:

<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>

  分别在order和member的application.yml文件中配置zipkin的信息:

spring:
  application:
    name: xxxx
  zipkin: 
    base-url: http://localhost:9411/
  ###全部采集  
  sleuth:
    sampler:
      probability: 1.0

首先确保已经启动zikkin-server

依次分别启动eureka,member,order,并访问order项目中的一个接口(该接口用restTemplate方式调用了member服务的接口)

可以看到,zikkin的UI界面出现以下信息,则证明跟踪成功(详细参数可以百度查阅相关资料,这里只讲解如何搭环境)

3. 接入Mysql实现持久化

Zipkin默认把收集的跟踪信息存放在内存中,这样不但性能极差,而且在重启zipkin-server之后,之前记录的跟踪信息会被清空,所以需要引入持久化方案进行优化,官方推荐可以整合Mysql或Elasticsearch,这里只讲解Mysql

  ① 新建数据库zipkin,并建立三个表,如下:

  ② 字段分别为:

zipkin_annotations

zipkin_dependencies

zipkin_spans

③ 修改启动方式:

java -jar zipkin-server-2.11.8-exec.jar --STORAGE_TYPE=mysql --MYSQL_DB=zipkin --MYSQL_USER=root --MYSQL_PASS=123456 --MYSQL_HOST=localhost --MYSQL_TCP_PORT=3306

分别启动eureka,member,order服务,访问order接口,会发现同样会展示如下信息:

此时,关掉zipkin-server,并重新启动;会发现,上面的信息还会有,并没有被清除

至此,SpringCLoud+Zipkin整合Mysql实现持久化环境搭建完毕!

发布了45 篇原创文章 · 获赞 20 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/AkiraNicky/article/details/87874669