竹笋

首页 » 问答 » 常识 » 分布式链路追踪Jaeger微服务Pig
TUhjnbcbe - 2024/10/22 16:39:00

随着微服务架构的流行,客户端发起的一次请求可能需要涉及到多个或N个服务,致使我们对服务之间的监控和排查变得更加复杂。

举个例子:

某条业务线的某个接口调用服务端时快时慢,这时就需要排查各个服务的日志进行分析,调动各个服务的开发人员联动排查,这种排查费时又费力。对于ToB的业务有时候还拿不到日志,难搞哦!

因此,就需要可以帮助理解系统行为、用于分析性能问题的工具,以便发生故障的时候,能够快速定位和解决问题,那就是APM(ApplicationPerformanceMonitor)。目前流行的APM开源工具有很多,比如:Zipkin,Skywalking,Pinpoint、Jaeger等等,本文将主要介绍Jaeger。

Jaeger是Uber技术团队发布的开源分布式跟踪系统,它用于监控和故障排查基于微服务的分布式系统:

分布式上下文传播、事务监控

根本原因、服务依赖分析

性能/延迟优化

OpenTracing启发的数据模型

多个存储后端:Cassandra,Elasticsearch,memory.

系统拓扑图

服务性能监控(SPM)

自适应采样

Jaeger架构

如何在Rainbond上集成?

1.集成OpenTelemetryClient:

v1.6版本以前JaegerClient是基于OpenTracingAPI实现的客户端库,JaegerClient结合JaegerAgent一起使用,发送span到JaegerCollector。

v1.6版本以后被弃用。使用OpenTelemetry替代JaegerClientandJaegerAgent,详情见JaegerandOpenTelemetry。

OpenTelemetry是无侵入的,只需在Java进程启动时添加javaagent,例:java-javaagent:path/to/opentelemetry-javaagent.jar-jarmyapp.jar。

那么在Rainbond上就可以通过插件将OpenTelemetryjavaagent下载到组件中并修改启动命令。

2.连接到Jaeger-Collector:

将所有安装了OpenTelemetryjavaagent插件的微服务组件都通过依赖连接到JaegerCollector。

实践步骤

实践中将使用SpringCloudPig进行演示,Gitee:

1
查看完整版本: 分布式链路追踪Jaeger微服务Pig