调用链选型之Zipkin,Pinpoint,SkyWalking,CAT

简介
Zipkin是Twitter开源的调用链分析工具,目前基于springcloud sleuth得到了广泛的使用,特点是轻量,使用部署简单。

Pinpoint是韩国人开源的基于字节码注入的调用链分析,以及应用监控分析工具。特点是支持多种插件,UI功能强大,接入端无代码侵入。

SkyWalking是本土开源的基于字节码注入的调用链分析,以及应用监控分析工具。特点是支持多种插件,UI功能较强,接入端无代码侵入。目前已加入Apache孵化器。

CAT是大众点评开源的基于编码和配置的调用链分析,应用监控分析,日志采集,监控报警等一系列的监控平台工具。

基本原理
类别    Zipkin    Pinpoint    SkyWalking    CAT
实现方式    拦截请求,发送(HTTP,mq)数据至zipkin服务    java探针,字节码增强    java探针,字节码增强    代码埋点(拦截器,注解,过滤器等)
接入
类别    Zipkin    Pinpoint    SkyWalking    CAT
接入方式    基于linkerd或者sleuth方式,引入配置即可    javaagent字节码    javaagent字节码    代码侵入
agent到collector的协议    http,MQ    thrift    gRPC    http/tcp
OpenTracing    √    ×    √    ×
分析
类别    Zipkin    Pinpoint    SkyWalking    CAT
颗粒度    接口级    方法级    方法级    代码级
全局调用统计    ×    √    √    √
traceid查询    √    ×    √    ×
报警    ×    √    √    √
JVM监控    ×    ×    √    √
页面UI展示
类别    Zipkin    Pinpoint    SkyWalking    CAT
健壮度    **    *****    ****    *****
数据存储
类别    Zipkin    Pinpoint    SkyWalking    CAT
数据存储    ES,mysql,Cassandra,内存    Hbase    ES,H2    mysql,hdfs
PinPoint和skyWalking支持的插件对比
类别    Pinpoint    SkyWalking
web容器    Tomcat6/7/8,Resin,Jetty,JBoss,Websphere    Tomcat7/8/9,Resin,Jetty
JDBC    Oracle,mysql    Oracle,mysql,Sharding-JDBC
消息中间件    ActiveMQ, RabbitMQ    RocketMQ 4.x,Kafka
日志    log4j, Logback    log4j,log4j2, Logback
HTTP库    Apache HTTP Client, GoogleHttpClient, OkHttpClient    Apache HTTP Client, OkHttpClient,Feign
Spring体系    spring,springboot    spring,springboot,eureka,hystrix
RPC框架    Dubbo,Thrift    Dubbo,Motan,gRPC,ServiceComb
NOSQL    Memcached, Redis, CASSANDRA    Memcached, Redis
社区活跃度
截止到2018年5月14日

类别    Zipkin    Pinpoint    SkyWalking    CAT
STAR    8.4k    5.9k    3.3k    4.9k
性能分析
摘自:https://juejin.im/post/5a7a9e0af265da4e914b46f1

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

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

skywalking:https://skywalkingtest.github.io/Agent-Benchmarks/README_zh.html
--------------------- 
作者:weixin_33738555 
来源:CSDN 
原文:https://blog.csdn.net/weixin_33738555/article/details/87587377 
版权声明:本文为博主原创文章,转载请附上博文链接!

你可能感兴趣的:(JVM调优,常用算法)