全链路跟踪——Zipkin、Pinpoint、SkyWalking、CAT、jaeger(一)

简介

  • Zipkin是Twitter开源的调用链分析工具,目前基于springcloud sleuth得到了广泛的使用,特点是轻量,使用部署简单。
  • Pinpoint是韩国人开源的基于字节码注入的调用链分析,以及应用监控分析工具。特点是支持多种插件,UI功能强大,接入端无代码侵入。
  • skywalking是一款国产开源框架,为分布式系统的应用程序性能监控工具,特别为微服务、云原生和基于容器(Kubernetes)架构而设计,基于OpenTracing规范、开源的AMP系统。Skywalking提供分布式跟踪、服务网格遥测分析、度量聚合和可视化一体化解决方案。支持Java, .Net Core, PHP, NodeJS, Golang, LUA语言探针。
  • CAT(Central Application Tracking)是大众点评开源的基于编码和配置的调用链分析,应用监控分析,日志采集,监控报警等一系列的监控平台工具。
  • jaeger 受到Dapper和OpenZipkin的启发,是由Uber Technologies创建 并捐赠给Cloud Native Computing Foundation的分布式追踪平台。

对比

项目ZipkinPinpointSkywalkingCATjaeger
实现方式拦截请求Java探针,
字节码增强
Java探针,
字节码增强
代码埋点拦截请求
支持语言JavaJavaJava/C/C++/Go/Nginx等Java/C/C++/Go/Node.jsGo
接入方式基于linkerd或者sleuth方式,
引入配置即可
javaagent字节码javaagent字节码代码侵入拦截/侵入
agent到collector的协议http,MQthriftgRPChttp/tcpudp/http
OpenTracing××
颗粒度接口级方法级方法级代码级接口级
全局调用统计××
traceid查询××
报警××
JVM监控×××
数据存储ES/mysql/Cassandra/内存HbaseES/H2/PG/MySQLmysql,hdfsES/kafka/Cassandra,内存
STAR16.3k12.9k22.2k18k18.1k

性能

模拟了三种并发用户:500,750,1000。使用jmeter测试,每个线程发送30个请求,设置思考时间为10ms。使用的采样率为1,即100%,这边与生产可能有差别。pinpoint默认的采样率为20,即50%,通过设置agent的配置文件改为100%。zipkin默认也是1。组合起来,一共有12种。下面看下汇总表:

在这里插入图片描述
从上表可以看出,在三种链路监控组件中,skywalking的探针对吞吐量的影响最小,zipkin的吞吐量居中。pinpoint的探针对吞吐量的影响较为明显,在500并发用户时,测试服务的吞吐量从1385降低到774,影响很大。然后再看下CPU和memory的影响,在内部服务器进行的压测,对CPU和memory的影响都差不多在10%之内。

转载:
https://blog.csdn.net/A123638/article/details/123117142
https://juejin.im/post/5a7a9e0af265da4e914b46f1

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 Spring Boot 中整合 Zipkin追踪需要进行以下步骤: 1. 在 pom.xml 中添加依赖: ``` <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zipkin</artifactId> </dependency> ``` 2. 在 application.properties 中添加如下配置: ``` spring.zipkin.base-url=http://localhost:9411 ``` 3. 在启动类上添加 `@EnableZipkinServer` 注解开启 Zipkin 服务端功能。 示例代码如下: ``` @SpringBootApplication @EnableZipkinServer public class ZipkinServerApplication { public static void main(String[] args) { SpringApplication.run(ZipkinServerApplication.class, args); } } ``` 4. 在需要进行链追踪的服务中添加依赖和配置: ``` <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zipkin</artifactId> </dependency> ``` 在 application.properties 中添加如下配置: ``` spring.zipkin.base-url=http://localhost:9411 ``` 5. 在启动类上添加 `@EnableZipkinStreamServer` 注解开启 Zipkin 客户端功能。 示例代码如下: ``` @SpringBootApplication @EnableZipkinStreamServer public class ZipkinClientApplication { public static void main(String[] args) { SpringApplication.run(ZipkinClientApplication.class, args); } } ``` 以上就是在 Spring Boot 中整合 Zipkin追踪的简单示例。希望这能帮到您。 ### 回答2: Zipkin是一个用于分布式系统的链追踪工具,方便开发人员在微服务架构中进行系统性能监控和故障排查。下面是一个基于Spring Boot的Zipkin追踪的配置整合示例。 首先,我们需要在pom.xml文件中添加相关依赖: ```xml <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zipkin</artifactId> </dependency> <!-- 其他相关依赖 --> </dependencies> ``` 接下来,在Spring Boot应用的启动类上添加@EnableZipkinServer注解,启用Zipkin Server功能: ```java @SpringBootApplication @EnableZipkinServer public class ZipkinServerApplication { public static void main(String[] args) { SpringApplication.run(ZipkinServerApplication.class, args); } } ``` 然后,我们需要在应用的配置文件application.properties中添加相关配置: ```properties spring.application.name=zipkin-server server.port=9411 spring.zipkin.enabled=true spring.sleuth.sampler.probability=1.0 spring.zipkin.base-url=http://localhost:9411 ``` 其中,spring.zipkin.enabled为true表示启用Zipkin功能,spring.sleuth.sampler.probability=1.0表示采样率为100%,spring.zipkin.base-url为Zipkin Server的地址。 最后,我们需要在每个需要进行链追踪的Spring Boot应用上添加相关配置: ```properties spring.zipkin.baseUrl=http://localhost:9411 spring.zipkin.discovery-client-enabled=true spring.zipkin.communications.enabled=true spring.zipkin.sender.type=web ``` 其中,spring.zipkin.baseUrl为Zipkin Server的地址,spring.zipkin.discovery-client-enabled为true表示启动服务发现功能,spring.zipkin.communications.enabled为true表示启动基于HTTP的通信功能,spring.zipkin.sender.type为web表示使用web方式发送链数据。 通过以上配置和整合,我们就可以在Spring Boot应用中实现Zipkin追踪的监控和故障排查功能了。 ### 回答3: Zipkin是一个开源的分布式追踪系统,可以用于追踪微服务架构中的请求链。在Spring Boot中整合Zipkin,可以通过配置和依赖注入来实现链追踪功能。 首先,需要在pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zipkin</artifactId> </dependency> ``` 接下来,在application.properties文件中添加以下配置: ```properties spring.zipkin.base-url=http://localhost:9411 # Zipkin服务器的地址 ``` 然后,创建一个Spring Boot应用程序,并在启动类上添加`@EnableZipkinServer`注解,以启用Zipkin服务器: ```java @SpringBootApplication @EnableZipkinServer public class ZipkinServerApplication { public static void main(String[] args) { SpringApplication.run(ZipkinServerApplication.class, args); } } ``` 在需要追踪的微服务应用程序中,需要添加以下配置: ```properties spring.zipkin.baseUrl=http://localhost:9411 # Zipkin服务器的地址 spring.sleuth.sampler.probability=1.0 # 采样比例,此处为100%采样 ``` 然后,在需要追踪的请求执行之前,添加以下注解: ```java @Autowired private Tracer tracer; ... Span span = tracer.getCurrentSpan(); span.tag("key", "value"); // 可以添加自定义的标签信息 ... span.finish(); ``` 这样就完成了Zipkin的链追踪功能的配置和整合。通过访问Zipkin服务器提供的界面,可以查看各个微服务之间的请求链和调用耗时。 总结:通过添加依赖和配置,以及使用Tracer来记录和追踪请求的执行情况,可以实现在Spring Boot应用程序中使用Zipkin进行链追踪。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值