Jump to section

什么是 Jaeger?

复制 URL

Jaeger 是用于追踪分布式服务之间事务的开源软件。它用来监控复杂的微服务环境并对其进行故障排除。

分布式跟踪是用来查看和了解复杂的微服务间交互中的整个活动链。

现代的云原生软件开发十分依赖微服务,因为每个独立的服务都提供不同的核心功能。当用户在应用中发出请求时,许多单独的服务都会做出响应,产生相应的结果。

应用中的一个调用可能会涉及几十项彼此交互的服务。当出现问题或某个请求变慢时,开发人员和工程师该如何查明问题所在?所以我们需要一种能跟踪所有连接的方法。

这就是分布式跟踪的意义所在。它通常是作为服务网格(管理和监控微服务的一种方式)的一部分运行。

Jaeger 使用分布式跟踪来了解不同微服务的请求路径。我们可以直观地看到调用流,无需凭猜测工作。

整理有序的事务信息对于调试和优化而言非常有用。Jaeger 内含的工具可用于监控分布式事务、优化性能和延迟,以及执行根本原因分析(RCA)(一种问题解决方法)。

作为一个开源项目,一个由数百个贡献者组成的社区不断改进完善着 Jaeger。Jaeger 基于与供应商无关的 OpenTracing API 和工具。

共享出行公司 Uber 在 2015 年开发了开源项目 Jaeger。2017 年,Jaeger 纳入云原生计算基金会(CNCF)的孵化项目,2019 年,Jaeger 正式毕业。

Jaeger 将执行请求显示为一条条迹线(trace)。迹线代表系统中的数据/执行路径。 

一个迹线包含一个或多个跨度(span)。跨度是 Jaeger 中作业的逻辑单元。每个跨度都由作业名称、开始时间和持续时间组成。跨度可以进行嵌套和排序。

Jaeger 内含多个组件,这些组件可以协同工作,一起收集、存储和可视化跨度与迹线。

Jaeger 客户端包括含用于分布式跟踪的 OpenTracing API 的特定语言实施。您可以手动使用这些实施,也可以将其与各种开源框架一起使用。

Jaeger 代理是一个网络守护进程,可侦听通过用户数据报协议发送的跨度。该代理应与所检测的应用放置在同一主机上。这通常是通过 Kubernetes 等容器环境中的 sidecar 实现的。

Jaeger 收集器可接收跨度并将它们放在队列中等待处理。

收集器需要持久的存储后端,因此 Jaeger 还具有可插拔的跨度存储机制。 

查询是一项从存储中检索迹线的服务。

Jaeger 控制台是用于直观查看分布式跟踪数据的用户界面。

Jaeger 是作为红帽® OpenShift® 服务网格的默认组件安装的,后者包括 Istio(一个开源服务网格)的实施。

这种分布式跟踪实施方案具有很多好处。Jaeger 可与 Kiali(Istio 的一个可观测性控制台)集成。Jaeger 后端支持根据业务需要大规模扩容,没有单点故障。Jaeger 可连接来自不同组件的数据,实现完整的端到端跟踪。Jaeger 还提供与 Zipkin 的向后兼容性。

继续阅读

文章

微服务如何支持医疗行业的 IT 集成

微服务让医疗行业和其他行业的开发人员能够创建由松散耦合的服务构成的应用,从而更加轻松地进行开发、测试、部署和升级。

文章

什么是微服务?

微服务是一种用于构建应用的架构方案,可使应用的各个部分既能独立工作,又能协同配合。

文章

什么是服务网格?

服务网格是一个内置于应用程序中的基础架构层,它会记录服务的交互方式,从而更轻松地优化通信并避免停机。

Illustration - mail

获取更多类似的内容

免费订阅我们的 Red Hat Shares 通讯邮件