🔰 学习视频 🔰
尚硅谷SpringCloud框架开发教程(SpringCloudAlibaba微服务分布式架构丨Spring Cloud)
集数:92—94
🔰 学习格言 🔰
不在能知,乃在能行。
🔰 学习笔记 🔰
🔰 项目地址 🔰
https://gitee.com/zqcliudaliuda/cloud2021
一、概述
在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的的服务节点调用来协同产生最后的请求结果,每一个前段请求都会形成一复杂的分布式服务调用链路,链路中的任何一环出现高延时或错误都会引起整个请求最后的失败。
二、搭建链路监控步骤
2.1 zipkin
🔶 下载
🔶 启动
启动服务:java -jar zipkin-server-2.12.9-exec.jar
运行控制台:http://localhost:9411/zipkin
🔶 术语
-
完整的调用链路:表示一请求链路,一条链路通过Trace ld唯一标识,Span标识发起的请求信息,各span通过parent id关联起来。
-
Trace:类似于树结构的Span集合,表示一条调用链路,存在唯一标识
-
span:表示调用链路来源,通俗的理解span就是一次请求信息
2.2 服务提供者
修改项目cloud-provider-payment8001
🔶 POM
新增依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
包含sleuth和zipkin
🔶 application.yml
新增以下配置
🔶 业务类
在PaymentController
中添加:
@GetMapping("/payment/zipkin")
public String paymentZipkin() {
return "payment zipkin server fall back";
}
2.3 服务消费者
修改项目cloud-consumer-order80
🔶 POM
新增依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
🔶 application.yml
新增以下配置
🔶 业务类
在OrderController
中添加:
@GetMapping("/consumer/payment/zipkin")
public String paymentZipkin() {
return restTemplate.getForObject("http://localhost:8001" + "/payment/zipkin", String.class);
}
注意:注释掉之前配置类中的注解@LoadBalanced
,以防止后面报500的错误。
2.4 测试
依次启动:7001、8001、80
访问:http://localhost:8001/payment/zipkin
payment zipkin server fall back
多次访问:http://localhost/consumer/payment/zipkin
payment zipkin server fall back
访问:http://localhost:9411/zipkin/
选择微服务名称进行链路跟踪。