微服务的链路问题
在微服务框架中,一个由客户端发起的请求在后端系统中会经历多个不同的服务节点调用来协同产生最后的请求结果。因此,每一个请求都会产生一条复杂的分布式调用链路,链路中的任何一个环节出现高延迟或者错误都会引起整个请求的失败。而SpringCloud Sleuth提供了一整套的服务跟踪解决方案。
搭建链路监控的步骤
下载和启动zipkin
本文以zipkin 2.12.9版本为例,可以根据自己的需求进行版本选择。
- zipkin下载地址 http://dl.bintray.com/openzipkin/maven/io/zipkin/java/zipkin-server/2.12.9/
- 启动指令,使用java启动jar的指令java -jar zipkin-server-2.12.9-exec.jar
- 启动成功之后如下所示:
4.访问本地的http://localhost:9411/zipkin/,可以看到如下的可视化界面
SpringCloud整合方式如下
添加pom依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
修改项目的application.yml文件
spring:
application:
name:
zipkin:
base-url: http://127.0.0.1:9411
sleuth:
sampler:
probability: 1 #采样率介于0到1之间,1这代表全部采样,一般用0.5
如果是SpringCloud项目,可以在生产者和消费者两边都添加这样的配置信息,在使用的过程中,产生请求之后,就可以在官网看到请求的链路信息:如下图所示