Zipkin链路监控实践
Zipkin是一种开源的分布式链路追踪系统,可以用于监控和跟踪微服务架构中的请求调用链。它可以帮助定位和解决分布式系统中的延迟问题,提供对请求的可视化跟踪和监控。
一、引入依赖
使用项目来启动Zipkin,创建一个springboot web项目添加zipkin依赖
1 <groupId>com.mike.study</groupId> 2 <artifactId>zipkin</artifactId> 3 <version>0.0.1-SNAPSHOT</version> 4 <name>zipkin</name> 5 <description>Demo project for zipkin</description> 6 <dependencies> 7 <dependency> 8 <groupId>org.springframework.boot</groupId> 9 <artifactId>spring-boot-starter-web</artifactId> 10 </dependency> 11 12 <!--引入的zipkinServer依赖--> 13 <dependency> 14 <groupId>io.zipkin.java</groupId> 15 <artifactId>zipkin-server</artifactId> 16 <version>${zipkin.version}</version> 17 </dependency> 18 <dependency> 19 <groupId>io.zipkin.java</groupId> 20 <artifactId>zipkin-autoconfigure-ui</artifactId> 21 <version>${zipkin.version}</version> 22 </dependency> 23 </dependencies>
配置application.yml
1 management: 2 metrics: 3 web: 4 server: 5 auto-time-requests: false 6 server: 7 port: 9411
二、启动zipkin
在监控项目中使用@EnableZipkinServer注解启动zipkin
1 import org.springframework.boot.SpringApplication; 2 import org.springframework.boot.autoconfigure.SpringBootApplication; 3 import zipkin.server.internal.EnableZipkinServer; 4 5 @SpringBootApplication 6 @EnableZipkinServer 7 public class ZipkinApplication { 8 9 public static void main(String[] args) { 10 SpringApplication.run(ZipkinApplication.class, args); 11 } 12 13 }
至此,zipkin监控项目也就搭建好了,只需要把需要监控的项目注册上来,即可跟踪链路了。
三、测试
创建3个微服务项目,分别是consumer,gateway,provider。consumer 通过gateway请求provider的服务。
3.1provider server
首先是provider,提供api查询用户信息
要把provider注册到zipkin,需要添加依赖
1 <dependency> 2 <groupId>org.springframework.cloud</groupId> 3 <artifactId>spring-cloud-starter-zipkin</artifactId> 4 </dependency>
再配置application.yml,告诉provider注册到那个zipkin
1 spring: 2 zipkin: 3 base-url: http://localhost:9411 # zipkin服务地址 4 sleuth: 5 sampler: 6 probability: 1 # 抽样百分比(0~1) 7 sender: 8 type: web # 链路类型(kafka,rabbitmq)
如法炮制,将gateway, consumer同样注册到zipkin,然后分别启动provider,gateway和consumer,然后请求consumer的controller。
访问http://localhost:7000/warp/user/2.1/5?token=13
再访问链路服务http://localhost:9411/zipkin/
通过链路分析,可以清晰看到每个服务的耗时,以及项目之间的依赖关系
如果该文章对你有所帮助,请点个赞支持下,谢谢!
合集:
微服务
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)