调用链监控:CAT

来源:
《微服务架构实战160讲》
https://www.baidu.com/linkurl=x9dFj2TD7WdsRoeeIr81edkJOhZq_Xjqzqpht1Yp0N2Aij9oOIhlxPjw3S9jIR7m&wd=&eqid=f77cd99e00086116000000065dc0d172

调用链监控

1 解决的问题

微服务下,各种服务之间的调用很复杂,需要调用链来进行调试

提升性能不能盲目提升,需要先测量,也需要调用链

2 原理

  • 核心概念
    在这里插入图片描述
  • 以Zipkin为例:
    在这里插入图片描述
    Reporter部分集成到应用程序中采集数据,并将数据上报,由Collector进行收集,然后通过Storage模块负责存储到存储系统中(Zipkin用的是Cassandra)。
    API模块是可以将处理后的数据提供对外服务的,UI模块就是数据统计展示层了。

3 CAT场景

在这里插入图片描述

4 架构设计

  • 客户端

使用ThreadLocal,每个Trace构建一个消息树,保证调用链的完整性和独立性;使用异步队列机制,将消息树发送到队列,Sender线程扫描异步队列提取信息,发送到后端服务
在这里插入图片描述

  • 服务端

Receiver收到消息后,发送到异步队列,Analyzer对队列的消息提取后进行分析,最后进行存储

原始的调用链trace数据存储在hdfs中,聚合的报表数据、按照分钟、小时的报表聚合数据存储在mysql中
在这里插入图片描述

  • 部署

分为实时数据和历史数据查询
在这里插入图片描述
参考部署架构:
在这里插入图片描述

  • 监控模型

含义-》例子-》对应概念,在API中,使用的是概念,如Transaction进行操作
在这里插入图片描述

发布了235 篇原创文章 · 获赞 264 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_41594698/article/details/102958504