springcloud动力节点-05Sleuth
Spring Cloud Sleuth
1.什么是链路追踪
链路追踪就是:追踪微服务的调用路径
2.链路追踪的由来
在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的服务节点调用来协同产生最后的请求结果,每一个请求都会开成一条复杂的分布式服务调用链路,链路中的任何一环出现高延时或错误都会引导起整个请求最后的失败。(不建议微服务中链路调用超过 3次)
3.分布式链路调用的监控
sleuth+zipkin(zipkin 就是一个可视化的监控控制台)
Zipkin 是 Twitter 的一个开源项目,允许开发者收集 Twitter 各个服务上的监控数据,并提供查询接口。
该系统让开发者可通过一个 Web 前端轻松的收集和分析数据,例如用户每次请求服务的处理时间等,可方便的监测系统中存在的瓶颈。
4.Zipkin(可视化平台)
4.1 下载 zipkin
SpringCloud 从 F 版以后已不需要自己构建 Zipkin server 了,只需要调用 jar 包即可
https://dl.bintray.com/openzipkin/maven/io/zipkin/java/zipkin-server/
https://dl.bintray.com/openzipkin/maven/io/zipkin/java/zipkin-server/2.12.9/
4.2 运行 zipkin,环境下cmd
java -jar zipkin-server-2.12.9-exec.jar
4.3 查看 zipkin 的控制台
http://localhost:9411
5.相关术语和名词解释
5.1 完整调用链路
5.2 简化后
调用链路的依赖关系
5.3 名词解释
Trace:类似于树结构的 Span 集合,表示一条调用链路,存在唯一标识
span:表示调用链路来源,通俗的理解 span 就是一次请求信息
6.Sleuth 快速入门
6.1 案例说明
这里我们就不搭建项目了,直接用之前的案例
eureka-server
consumer-user-service
provider-order-service
6.2 添加依赖
user-center 和 order-center 都要加,所以加在common-api公共接口中
<!-- 链路依赖:spring-cloud-starter-zipkin --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zipkin</artifactId> <version>2.2.8.RELEASE</version> </dependency>
6.3 修改配置文件
order-center 都要改配置文件yml
server: port: 8080 spring: application: name: order-center zipkin: base-url: http://localhost:9411 sleuth: sampler: probability: 1 # 配置采样率,默认的采样比例为0.1,即10%,所设置的值介于0到1之间,1则表示全部采集 rate: 10 # 为了使用速率限制采样器,选择每秒间隔接收trace量,最小数字为0,最大值2,147,483,647(最大int)默认10. eureka: client: service-url: defaultZone: http://localhost:8761/eureka instance: hostname: localhost instance-id: ${eureka.instance.hostname}:${spring.application.name}:${server.port}
user-center 都要改配置文件yml
server: port: 8081 spring: application: name: user-center cloud: openfeign: circuitbreaker: enabled: true # 开启熔断器 zipkin: base-url: http://localhost:9411 sleuth: sampler: probability: 1 # 配置采样率,默认的采样比例为0.1,即10%,所设置的值介于0到1之间,1则表示全部采集 rate: 10 # 为了使用速率限制采样器,选择每秒间隔接收trace量,最小数字为0,最大值2,147,483,647(最大int)默认10. eureka: client: service-url: defaultZone: http://localhost:8761/eureka instance: hostname: localhost instance-id: ${eureka.instance.hostname}:${spring.application.name}:${server.port} hystrix: metrics: enabled: true # 开启熔断器
6.4 启动访问,远程调用一下
查看 zipkin
点一下依赖
建议:远程调用的次数不要超过 3 层 2 层最好
分类:
SpringCloud
标签:
SpringCloud
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了