欢迎大家来到IT世界,在知识的湖畔探索吧!
简介
Spring Cloud Sleuth 主要功能就是在分布式系统中提供追踪解决方案,并且兼容支持了 zipkin,你只 需要在pom文件中引入相应的依赖即可。
相关概念
Spring Cloud Sleuth 为Spring Cloud提供了分布式根据的解决方案。它大量借用了Google Dapper的 设计。先来了解一下Sleuth中的术语和相关概念。
Spring Cloud Sleuth采用的是Google的开源项目Dapper的专业术语。
- Span:基本工作单元,例如,在一个新建的span中发送一个RPC等同于发送一个回应请求给 RPC,span通过一个64位ID唯一标识,trace以另一个64位ID表示,span还有其他数据信息,比 如摘要、时间戳事件、关键值注释(tags)、span的ID、以及进度ID(通常是IP地址) span在不断的启动和停止,同时记录了时间信息,当你创建了一个span,你必须在未来的某个时 刻停止它。
- Trace:一系列spans组成的一个树状结构,例如,如果你正在跑一个分布式大数据工程,你可能 需要创建一个trace。
- Annotation:用来及时记录一个事件的存在,一些核心annotations用来定义一个请求的开始和结 束 cs – Client Sent -客户端发起一个请求,这个annotion描述了这个span的开始 sr – Server Received -服务端获得请求并准备开始处理它,如果将其sr减去cs时间戳便可得到 网络延迟 ss – Server Sent -注解表明请求处理的完成(当请求返回客户端),如果ss减去sr时间戳便可得 到服务端需要的处理请求时间 cr – Client Received -表明span的结束,客户端成功接收到服务端的回复,如果cr减去cs时间 戳便可得到客户端从服务端获取回复的所有所需时间
欢迎大家来到IT世界,在知识的湖畔探索吧!
链路追踪Sleuth入门
接下来通过之前的项目案例整合Sleuth,完成入门案例的编写
(1) 配置依赖
修改微服务工程引入Sleuth依赖
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-sleuth</artifactId> </dependency>
欢迎大家来到IT世界,在知识的湖畔探索吧!
(2) 修改配置文件
修改application.yml添加日志级别
欢迎大家来到IT世界,在知识的湖畔探索吧!logging: level: root: INFO org.springframework.web.servlet.DispatcherServlet: DEBUG org.springframework.cloud.sleuth: DEBUG
每个微服务都需要添加如上的配置。启动微服务,调用之后,我们可以在控制台观察到sleuth的日志输出。
其中 ff8ff8b803a3b558 是TraceId,后面跟着的是SpanId,依次调用有一个全局的TraceId,将调用链 路串起来。仔细分析每个微服务的日志,不难看出请求的具体过程。
查看日志文件并不是一个很好的方法,当微服务越来越多日志文件也会越来越多,通过Zipkin可以将日 志聚合,并进行可视化展示和全文检索。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/98178.html