type
status
date
slug
summary
tags
category
icon
password

1. 什么是 Jaeger?

Jaeger 是 Uber 开发的开源分布式追踪系统,主要用于微服务架构下的调用链路分析。它可以帮助开发者:
  • 可视化服务调用链路
  • 分析性能瓶颈
  • 调试复杂的微服务调用

2. Jaeger 的核心组件

(1) Agent

运行在每个宿主机上的网络守护进程,接收应用发送的追踪数据(通常是UDP),再转发给 Collector。

(2) Collector

接收 Agent 转发的追踪数据,进行校验、批处理,并写入存储(如Elasticsearch、Cassandra)。

(3) Query

提供 API 给前端 UI 查询追踪数据。

(4) UI

可视化界面,支持搜索和展示调用链路,方便开发者分析。

3. 为什么 Java 开发者要学 Jaeger?

  • 微服务调用链复杂,日志难以串联。
  • Jaeger 可以像"调用地图"一样,清晰展示一次请求跨越多个微服务的路径。
  • 在性能优化、故障排查中极其有用。

4. 示例:在 Java 应用中集成 Jaeger

依赖引入

以 Spring Boot 为例,可以使用 opentracing-spring-jaeger-starter

配置

application.yml 中:

使用示例

在 Java 代码中,可以通过自动注入 Tracer 来创建 span:

5. 可视化效果

在 Jaeger UI 中,可以清晰地看到 order-service 调用 payment-serviceinventory-service 的链路,包括每个请求耗时。

6. 总结

  • Jaeger 是 Java 开发者排查微服务问题的利器。
  • 配合 Spring Boot Starter,集成成本低。
  • 建议和日志系统(ELK/EFK)搭配使用,形成完善的 Observability 体系。