Spring-Boot

跟我学Spring Cloud(Finchley版)-24-Sp

2019-03-27  本文已影响8人  周立_itmuch

经过前文讲述,我们的微服务架构日趋完善,已可使用Spring Cloud构建一个非常健壮的系统!

但假设,你的项目一旦出现问题,如何才能快速定位出来呢?一般项目上要求我们快速定位两种问题:

这正是调用链监控要做的事情。Spring Cloud提供Sleuth来实现调用链监控。

简介

Spring Cloud Sleuth为Spring Cloud提供了分布式跟踪的解决方案,它大量借用了Google Dapper、Twitter Zipkin和Apache HTrace的设计。

TIPS

基本概念

(1) Span(跨度):

基本工作单元。span用一个64位的id唯一标识。除ID外,span还包含其他数据,例如描述、时间戳事件、键值对的注解(标签),span ID、span父ID等。

span被启动和停止时,记录了时间信息。初始化span被称为“root span”,该span的id和trace的id相等。

(2) Trace(跟踪):

一组共享“root span”的span组成的树状结构称为trace。trace也用一个64位的ID唯一标识,trace中的所有span都共享该trace的ID。

(3) Annotation(标注):

annotation用来记录事件的存在,其中,核心annotation用来定义请求的开始和结束。

(1) cs(Client Sent 客户端发送):客户端发起一个请求,该annotation描述了span的开始。

(2) sr(Server Received 服务器端接收):服务器端获得请求并准备处理它。如果用sr减去cs时间戳,就能得到网络延迟。

(3) ss(Server Sent 服务器端发送):该annotation表明完成请求处理(当响应发回客户端时)。如果用ss减去sr时间戳,就能得到服务器端处理请求所需的时间。

(4) cr(Client Received 客户端接收):span结束的标识。客户端成功接收到服务器端的响应。如果cr减去cs时间戳,就能得到从客户端发送请求到服务器响应的所需的时间。
Sleuth

快速入门

其中,配置不是必选的,这里加上日志,只是为了看到更多Sleuth相关的日志。

是不是非常简单!

测试

TIPS

本文的例子本身意义不大,主要是让大家了解下Sleuth的基本概念以及如何整合。实现分布式应用的监控才有意义;另外完善的监控工具一般都会配备一个良好的界面,便于大家才能迅速了解系统的运行情况。这些都是下一节要探索的问题。

配套代码

本文首发

http://www.itmuch.com/spring-cloud/finchley-24/

干货分享

全是干货!
上一篇下一篇

猜你喜欢

热点阅读