分布式調用鏈調研(pinpoint,skywalking,jaeger,zipkin等對比)


分布式調用鏈調研(pinpoint,skywalking,jaeger,zipkin等對比)

2020-10-10

轉自: 分布式調用鏈調研(pinpoint,skywalking,jaeger,zipkin等對比)

目錄

1. APM簡述
2. APM主要解決的問題
3. 分布式調用追蹤(APM)一覽
4. 方案對比
5. 各方案參考鏈接
6. 參考資料

1. APM簡述

    APM (Application Performance Management)是對企業的應用系統進行實時監控,它是用於實現對應用程序性能管理和故障管理的系統化的解決方案。 

2. APM主要解決的問題

  1. 集中式度量系統
  2. 分布式全鏈接追蹤系統
  3. 集中式日志系統(elk)

3. 分布式調用追蹤(APM)一覽

  1. google的Drapper--未開源,最早的APM
  2. 阿里-鷹眼--未開源
  3. 大眾點評——CAT--跨服務的跟蹤功能與點評內部的RPC框架集成,這部分未開源且項目在2014.1已經停止維護。服務粒度的監控,通過代碼埋點的方式來實現監控,比如: 攔截器,注解,過濾器等,對代碼的侵入性較大,集成成本較高。
  4. Hydra-京東: 與dubbo框架集成,對於服務級別的跟蹤統計,現有業務可以無縫接入。對於細粒度的興趣點,需要業務人員手動添加.開源項目已於2013年6月停止維護
  5. PinPoint-naver,字節碼探針技術,代碼無侵入,體系完善不易修改,支持java,技術棧支持dubbo.其他語言社區支援中
  6. zipkin--java方便集成於springcloud,社區支持的插件也包括dubbo,rabbit,mysql,httpclient等(https://github.com/openzipkin/brave/tree/master/instrumentation),同時支持php,go,js等語言客戶端,界面功能較為簡單,本身無告警功能,可能需要二次開發。代碼入侵度小。
  7. uber-jaeger, Jaeger支持java/c++/go/node/php,在界面上較為完善(對比zipkin),但是也無告警功能。代碼入侵度小。dubbo目前無插件支持,可二次開發。
  8. skywalking -華為,類似於PinPoint,目前還在apache孵化中,網上吞吐量對比中強於pinpoint,實際未驗證。本身支持dubbo

4. 方案對比

 

 

pinpoint

zipkin

jaeger

skywalking

OpenTracing兼容

客戶端支持語言

java、php

java,c#,go,php等

java,c#,go,php等

Java, .NET Core, NodeJS and PHP

存儲

hbase

ES,mysql,Cassandra,內存

ES,kafka,Cassandra,內存

ES,H2,mysql,TIDB,sharding sphere

傳輸協議支持

thrift

http,MQ

udp/http

gRPC

ui豐富程度

實現方式-代碼侵入性

字節碼注入,無侵入

攔截請求,侵入

攔截請求,侵入

字節碼注入,無侵入

擴展性

trace查詢

不支持

支持

支持

支持

告警支持

支持

不支持

不支持

支持

jvm監控

支持

不支持

不支持

支持

性能損失

  

5. 各方案參考鏈接

    1.pinpoint-naver

    github: https://github.com/naver/pinpoint

    docker快速體驗:https://github.com/naver/pinpoint-docker

 

    2.zipkin-推特:

    github: https://github.com/openzipkin/zipkin

    頁面詳解:https://blog.csdn.net/u012394095/article/details/82585863

    zipkin於php對接:https://www.colabug.com/1872361.html

 

    3.jaeger-uber

    部分參考資料:

    jaeger簡介,部署,入門實踐 https://my.oschina.net/u/2548090/blog/1821359

    jaeger——java實現 https://my.oschina.net/u/1789379/blog/1551421

    Uber分布式追蹤系統Jaeger使用介紹和案例(PHP Hprose Go 跨語言調用)

    https://segmentfault.com/a/1190000011636957

    全鏈路監控Jaeger搭建實戰 https://www.jianshu.com/p/ffc597bb4ce8

    jaeger官網快速開始 https://www.jaegertracing.io/docs/1.8/getting-started/

 

    4.skywalking(推薦)

    github: https://github.com/apache/incubator-skywalking

    SkyWalking 分布式追蹤系統 https://www.jianshu.com/p/2fd56627a3cf

    Apache SkyWalking 5.0中文版圖文詳解使用手冊

    http://skywalking.apache.org/zh/blog/2018-12-18-Apache-SkyWalking-5-0-UserGuide.html

    skywalking學習筆記 https://juejin.im/post/5ab5b0e26fb9a028e25d7fcb 

 

6. 參考資料 

    分布式鏈路追蹤技術對比 https://blog.csdn.net/moonpure/article/details/79992855

    回到網易后開源 APM 技術選型與實戰 https://www.infoq.cn/article/apm-Pinpoint-practice

    zipkin vs jaeger https://segmentfault.com/a/1190000015308746

    調用鏈選型之Zipkin,Pinpoint,SkyWalking,CAT https://www.jianshu.com/p/0fbbf99a236e

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM