链路追踪神器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+端口就可以直接进到控制台了,可以在控制台查看详细的调用链路了

相关推荐
异常君9 分钟前
深入理解 Java Stream.reduce()方法:原理解析与实战应用
java
啊阿狸不会拉杆27 分钟前
《软件工程》实战— 在线教育平台开发
java·vue.js·软件工程·团队开发
移动开发者1号32 分钟前
Fragment事务commit与commitNow区别
android·java
꧁༺摩༒西༻꧂39 分钟前
Python生成日历导出Excel
java·前端·python
在未来等你1 小时前
互联网大厂Java求职面试:AI大模型融合下的企业知识库架构设计与性能优化
java·向量数据库·ai大模型·spring ai·语义缓存·rag系统·多模态处理
寻星探路1 小时前
JAVA与C语言之间的差异(一)
java·开发语言
tqs_123451 小时前
IntelliJ IDEA 中进行背景设置
java·ide·intellij-idea
爱上语文2 小时前
MyBatisPlus(1):快速入门
java·开发语言·数据库·后端·mybatis
异常君2 小时前
Java 与 Go 语言协作开发实战指南
java·go
信徒_2 小时前
Cloudflare
java