Sleuth
在大型系统的微服务化构建中,-个系统被拆分成了许多微服务。这些模块负责不同的功能,组
合成系统,最终可以提供丰富的功能。在这种架构中,-次请求往往需要涉及到多个服务。互联网应用构建在不同的软件模块集上,这些软件模块,有可能是由不同的团队开发、可能使用不同的编程语言来实现、有可能布在了几千台服务器,横跨多个不同的数据中心[] ,也就意味着这种架构形式也会存在一些问题,当项目出问题时,不能确定发生问题的是哪一台服务器中的那个微服务。
如何使用
第一步 添加依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>
进行访问测试,日志打印内容改变,我们可通过日志查看到各种信息。但是随着微服务越来越多,访问请求越来越多,那查看日志将十分麻烦,可以通过Zipkin将日志聚合。
Zipkin
Zipkin是Twitter 的一个开源项目, 它基于Google Dapper实现,它致力于收集服务的定时数据,
以解决微服务架构中的延迟问题,包括数据的收集、存储展现、查找和我们可以使用它来收集各个服务器上请求链路的跟踪数据,并通过它提供的REST API接口来辅助我们查询跟踪数据以实现对分布式系统的监控程序,从而及时地发现系统中出现的延迟升高问题并找出系统性能瓶颈的根源
除了面向开发的API 接口之外,它也提供了方便的UI组件来帮助我们直观的搜索跟踪信息和分
析请求链路明细,比如:可以查询某段时间内各用户请求的处理时间等。
Zipkin提供了可插拔数据存储方式: In-Memory、 MySql Cassandra