链路追踪神器zipkin安装详细教程教程

今天分享下zipkin的详细安装教程,具体代码demo可以参考我上篇文章:Spring Cloud Sleuth与Zipkin深度整合指南:微服务链路追踪实战-CSDN博客

一、Zipkin是什么?

Zipkin是由Twitter开源的一款分布式追踪系统(现由OpenZipkin社区维护),用于收集和分析微服务架构中的时序数据。它通过跟踪请求在分布式系统中的流转路径,帮助开发者可视化服务间的调用关系、延迟等关键指标,是诊断复杂系统性能问题的利器。

二、为什么要使用Zipkin?

  1. 故障诊断:快速定位跨服务调用的性能瓶颈
  2. 依赖分析:可视化服务拓扑关系,识别不合理的依赖
  3. 性能优化:精确测量各环节耗时,针对性优化
  4. 分布式上下文:追踪请求完整生命周期(支持OpenTracing标准)
  5. 轻量级:对业务系统侵入性小

三、同类竞品对比

工具 特点 差异点
Jaeger Uber开源,支持多语言 更强大的采样策略和UI分析功能
SkyWalking 国产APM,指标监控更全面 集成Metrics/Logging/Tracing
Pinpoint 无侵入式探针 侧重全链路追踪,资源消耗较大
Sleuth+Prometheus Spring生态组合 更适合纯Spring Cloud体系

四、Zipkin安装

zipkin支持docker和普通机器安装方式

Docker安装

前置要求

  • Docker环境
  • 默认使用内存存储(生产环境建议配MySQL/Elasticsearch)
复制代码
# 快速启动(内存模式)`
docker run -d -p 9411:9411 --name zipkin openzipkin/zipkin

`# 使用MySQL存储`
docker run -d -p 9411:9411 \
  -e STORAGE_TYPE=mysql \
  -e MYSQL_HOST=your_host \
  -e MYSQL_USER=zipkin \
  -e MYSQL_PASS=zipkin \
  openzipkin/zipkin

`# 访问UI`
http://localhost:9411/zipkin/
`

普通方式安装

++1、安装JDK++

zipkin依赖于java命令启动,所以安装前需要先部署jdk环境,这里推荐部署jdk17,具体如何安装可以参考我之前文章:CentOS安装JDK17及多版本管理-CSDN博客

++2、使用以下命令一键安装++

先在根目录创建个zipkin目录,使用以下命令一键下载

复制代码
`curl -sSL https://zipkin.io/quickstart.sh | bash -s
`

命令执行完成后,在当前zipkin目录下会多出这三个文件

++3、启动zipkin++

如果是本地话直接使用java -jar zipkin.jar就可以启动了,不过该启动方式一中断终端连接就会自动停止,我们可以使用以下命令让它一直在后端运行:

复制代码
`nohup java -jar zipkin.jar &
`

如果是生产环境,建议使用supervisord作为守护进程管理工具,确保zipkin在后台稳定运行,执行完成后,查看下端口是否启动

也可以直接通过查看nohup.out日志查看启动情况

++4、打开9411端口防火墙++

zipkin默认端口是9411,如果你服务器该端口被占用了,可以使用以下命令启动使用指定端口

复制代码
`nohup java -jar zipkin.jar --zipkin.port=9412 &
`

进到你的云服务器控制台,打开9411端口,这样就可以页面直接访问了

五、Zipkin使用

客户端需要接入zip,具体如何接入参考我之前文章(Spring Cloud Sleuth与Zipkin深度整合指南:微服务链路追踪实战-CSDN博客

打开服务器ip+端口就可以直接进到控制台了,可以在控制台查看详细的调用链路了

相关推荐
野犬寒鸦18 小时前
今日面试之项目拷打:锁与事务的深度解析
java·服务器·数据库·后端
ajassi200018 小时前
开源 java android app 开发(十五)自定义绘图控件--仪表盘
android·java·开源
FrankYoou18 小时前
Spring Boot 自动配置之 TaskExecutor
java·spring boot
爱读源码的大都督18 小时前
Spring AI Alibaba JManus底层实现剖析
java·人工智能·后端
间彧18 小时前
ReentrantLock与ReadWriteLock在性能和使用场景上有什么区别?
java
Lbwnb丶18 小时前
p6spy 打印完整sql
java·数据库·sql
间彧18 小时前
公平锁与非公平锁的选择策略与场景分析
java
渣哥18 小时前
锁升级到底能不能“退烧”?synchronized 释放后状态解析
java
间彧18 小时前
Java ReentrantLock详解与应用实战
java
间彧18 小时前
volatile与Atomic类的性能对比与适用场景分析
java