1.0全链路追踪技术出现的原因
公司内部一个功能的实现,底层可能调用多个应用系统
在调用这个功能的同时,可能会出现多种情况,比如访问较慢,出现错误,可能需要进行定位
所以,我们需要快速定位服务错误点
大规模分布式系统
可参考这个链接
跨微服务的API调用发生异常,要求快速定位出问题出在哪里;
跨微服务的API调用发生性能瓶颈,要求迅速定位出性能瓶颈。
https://blog.csdn.net/liumiaocn/article/details/80657661
2.0 全链路测试工具的出现
厂商 | 工具 |
---|---|
Naver | Pinpoint |
Apache | HTrace |
阿里 | 鹰眼 Tracing |
京东 | Hydra |
新浪 | Watchman |
美团点评 | CAT |
Zipkin |
Zipkin,它是 Twitter 的一个开源项目,基于 Google 的 Dapper 实现
Zipkin的工作原理是通过在应用程序中嵌入Zipkin客户端库,在应用程序处理请求时收集相关数据(例如调用链路、请求耗时等),然后将数据发送到Zipkin Server。Zipkin Server负责存储和查询跟踪数据,并提供Web界面让用户进行查询和分析。
3.0 对接语言选择
Zipkin支持多种编程语言,包括Java、C#、Python、Go等,可以通过各种方式(例如HTTP、Kafka)将跟踪数据发送到Zipkin
python
java
4.0 zipkin架构
ZipKin 可以分为两部分:
ZipKin Server :用来作为数据的采集存储、数据分析与展示;
ZipKin Client :基于不同的语言及框架封装的一些列客户端工具,这些工具完成了追踪数据的生成与上报功能。
5.0 zipkin核心组件
- collector 信息收集器
collector 接受或者收集各个应用传输的数据。
- storage 存储组件
zipkin 默认直接将数据存在内存中,此外支持使用 Cassandra、ElasticSearch 和 Mysql ,可以根据需要进行配置。
- search 查询进程
它提供了简单的 JSON API 来供外部调用查询。
- web UI 服务端展示平台
主要是提供简单的 web 界面,用图表将链路信息清晰地展示给开发人员。
6.0 windows搭建zipkin
链接地址
https://repo1.maven.org/maven2/io/zipkin/zipkin-server/
选择自己需要的版本
下载jar包
安装java 环境
运行zipkin
java -jar zipkin-server-2.24.0-exec.jar(替换成自己的版本)
打开可视化界面
7.0 python 对接
命令行安装模块
pip install py_zipkin
pip install pyramid
pip install pyramid-zipkin