==================
spring-cloud-sleuth
==================
spring-cloud-sleuth 可以用来增强 log 的跟踪识别能力, 经常在微服务架构中被引入, 但其实在单体应用中也很重要, 比如多线程操作/定时任务/复杂的web请求, 都需要很容易地区分纳几行log日志属于一组操作.

未引入分布式链路跟踪系统之前的两个使用案例, 展现如何在log日志中增加了traceid信息.
https://www.baeldung.com/spring-cloud-sleuth-single-application
https://reflectoring.io/tracing-with-spring-cloud-sleuth/

==================
分布式链路跟踪系统
==================
pinpoint
stars: 8000+
https://github.com/naver/pinpoint
存储: HBase
客户端支持语言: Java/PHP
UI: 非常好
社区活跃度: 比较活跃
代码侵入性: 基本无侵入

zipkin
stars: 10000+
https://github.com/openzipkin/zipkin/
存储: 插件式存储设计, 支持Cassandra, 也支持 ES 和 MySQL, 也有其他社区开发的存储插件.
客户端支持语言: Java/C#/Go/Python/PHP, 支持的语言非常全.
UI: 一般
社区活跃度: 非常活跃. zipkin 架构扩展性非常好, spring-cloud-sleuth 官方默认采用zipkin 作为distributed tracing server.
代码侵入性: 一边情况下需要手工埋点

cat:
stars: 8000+
https://github.com/dianping/cat
存储: 规模较小可以直接写本地磁盘, 规模较大推荐使用HDFS存储
客户端支持语言: Java/C/C++/Node.js/Python/Go, 官方还没有发布C#客户端, 携程有一个C#客户端(貌似是老版本)
UI: 一般
社区活跃度: 美团点评主导开发, 在国内用的较多, 但基本上都是拿来主义.
代码侵入性: 需要手工埋点

Spring Cloud(十二):分布式链路跟踪 Sleuth 与 Zipkin【Finchley 版】
https://windmt.com/2018/04/24/spring-cloud-12-sleuth-zipkin/

回到网易后开源 APM 技术选型与实战
https://www.infoq.cn/article/apm-Pinpoint-practice

关于选型, 我推荐使用 zipkin, 社区支持度最好, 同时集群搭建和运维也更友好, 尤其是可以使用ES作为后台存储, 对于一般团队ELK本身就是必须的, 即使不用ES, 使用Cassandra作存储, 比HBase要简单很多.

spring-cloud-sleuth 和 分布式链路跟踪系统的更多相关文章

  1. Spring Cloud 微服务分布式链路跟踪 Sleuth 与 Zipkin

    Zipkin 是一个开放源代码分布式的跟踪系统,由 Twitter 公司开源,它致力于收集服务的定时数据,以解决微服务架构中的延迟问题,包括数据的收集.存储.查找和展现.它的理论模型来自于Google ...

  2. 【Spring Cloud】Spring Cloud之Spring Cloud Sleuth,分布式服务跟踪(1)

    一.Spring Cloud Sleuth组件的作用 为微服务架构增加分布式服务跟踪的能力,对于每个请求,进行全链路调用的跟踪,可以帮助我们快速发现错误根源以及监控分析每条请求链路上的性能瓶颈等. 二 ...

  3. Spring Cloud第九篇 | 分布式服务跟踪Sleuth

    ​ ​本文是Spring Cloud专栏的第九篇文章,了解前八篇文章内容有助于更好的理解本文: Spring Cloud第一篇 | Spring Cloud前言及其常用组件介绍概览 Spring Cl ...

  4. 分布式链路跟踪系统架构SkyWalking和zipkin和pinpoint

    Net和Java基于zipkin的全链路追踪 https://www.cnblogs.com/zhangs1986/p/8966051.html 在各大厂分布式链路跟踪系统架构对比 中已经介绍了几大框 ...

  5. 你的Node应用,对接分布式链路跟踪系统了吗?(一) 原创: 金炳 Node全栈进阶 4天前 戳蓝字「Node全栈进阶」关注我们哦

    你的Node应用,对接分布式链路跟踪系统了吗?(一) 原创: 金炳 Node全栈进阶 4天前 戳蓝字「Node全栈进阶」关注我们哦

  6. Spring Cloud Sleuth + Zipkin 链路监控

    原文:https://blog.csdn.net/hubo_88/article/details/80878632 在微服务系统中,随着业务的发展,系统会变得越来越大,那么各个服务之间的调用关系也就变 ...

  7. rabbitmq+sleuth+zinkip 分布式链路追踪

    我们都知道,微服务之间通过feign传递,在复杂的微服务架构系统中,几乎每一个前端请求都会形成一个复杂的分布式服务调用链路,在每条链路中任何一个依赖服务出现延迟超时或者错误都有可能引起整个请求最后的失 ...

  8. springcloud(十二):使用Spring Cloud Sleuth和Zipkin进行分布式链路跟踪

    随着业务发展,系统拆分导致系统调用链路愈发复杂一个前端请求可能最终需要调用很多次后端服务才能完成,当整个请求变慢或不可用时,我们是无法得知该请求是由某个或某些后端服务引起的,这时就需要解决如何快读定位 ...

  9. Spring Cloud(十二):分布式链路跟踪 Sleuth 与 Zipkin【Finchley 版】

    Spring Cloud(十二):分布式链路跟踪 Sleuth 与 Zipkin[Finchley 版]  发表于 2018-04-24 |  随着业务发展,系统拆分导致系统调用链路愈发复杂一个前端请 ...

随机推荐

  1. vue框架构建项目流程

    构建项目流程: 1.全局查询:node -v 2.全局初始化:npm install --global vue-cli 3.模块化工程:vue init webpack myapp--->y,n ...

  2. MySQL- 简单操作命令及教程

    MySQL数据库(;表示结束语句) 关系型数据库 注释用 // db_name表示库名: b_name表示表名 1.进入.退出 root用户只能在本机连接,不可外部链接 进入:mysql -uroot ...

  3. pipe size设置

    我所用的软件架构,使用pipe来实现线程之间的大量数据的传输.在实际操作中,pipe中传输的是数据的指针,而不是数据本身.  但是在调试过程中,我发现,如果我尝试往pipe里面write10000个指 ...

  4. Windows 组策略的生效规则

    一般的继承与处理规则 若上层父OU的某个组策略项目被设定,但是其下层子OU未设定该项目,则下层子OU继承上层父OU的这个组策略项目设定值 若在下层子OU内的某个组策略项目被设定,则此设定值预设会覆盖由 ...

  5. AI和机器学习对云应用的安全产生了何种影响?

    AI和机器学习对云应用的安全产生了何种影响? 正如其他许多新兴技术一样,AI是一把双刃剑,它对于云计算的安全影响是双重的:这项技术可以使工作负载变得更加安全,但也可能会为新的威胁打开大门. 出现这种分 ...

  6. Python Threading问题:TypeError in Threading. function takes 1 positional argument but 100 were given

    在使用python多线程module Threading时: import threading t = threading.Thread(target=getTemperature, args = ( ...

  7. UnityInspector显示扩展

    比如经常在三方插件中看到如下在Inspector中的样式 这种对特别是要做编辑序列化数据脚本操作很友好,但是这个是如何实现呢?比如我们要创建一个保存序列化的npc基本数据,名字(Name),性别(Se ...

  8. 【转】Linux之crontab定时任务命令

    1.  crontab命令概念 crontab命令用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行. cron 系统调度进程. 可以使 ...

  9. Markdown语法基础

    Markdown基本语法 创建 2018-09-07 by YANHAI 标题:Setext方式 三个或更多 大标题 === 小标题 --- 大标题 小标题 标题:Atx方式 # 内容 (一级标题) ...

  10. 详解volatile 关键字与内存可见性

    先来看一个例子: public class VolatileTest {            public static void main(String[] args) {           T ...