Spring Cloud中微服务跟踪的示例分析

发布时间:2021-12-24 10:32:31 作者:小新
来源:亿速云 阅读:161

这篇文章主要介绍了Spring Cloud中微服务跟踪的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

微服务跟踪概述

        先对微服务跟踪的相关概念,做一个基本的讲解。

实际问题与Sleuth

        前面章节中,我们使用Spring Cloud来搭建服务集群,不论是Eureka服务器、服务实例,还是配置服务器、网关等节点,都可以横向扩展。一旦集群中的服务数量增多,并且它们之间存在复杂的依赖关系,那么管理它们将会变成一件很棘手的事情。

        当外部用户向集群发起请求,这些请求将会调用多个服务,每个服务又会依赖其他的服务,此时,如果出现异常、超时等情况,排查问题将变得非常困难。我们需要很清楚知道,服务出现了什么问题,这些问题出在哪个环节。

        为了能解决这些问题,Spring Cloud提供了Sleuth框架作为解决方案,Sleuth可以与Zipkin、Apache HTrace和ELK等数据分析、服务跟踪系统进行整合,为服务跟踪、解决问题提供了便利。

服务跟踪系统

        目前有许多的分布式跟踪系统,例如Zipkin、HTrace等,这些系统可以帮助我们收集一些,由服务实时产生的数据(主要是日志),通过这些数据可以分析出分布式系统的健康状态、服务调用过程、调用耗时等指标,为优化系统、解决问题提供了依据。

        读者需要区别两个基本的概念:服务跟踪和数据分析,数据分析系统(例如ELK等)收集了服务集群所产生的数据后,也可以实现服务监控、服务跟踪等功能,但明显数据分析系统的概念更为广泛、抽象。本书将会介绍服务跟踪系统Zipkin,同样也会介绍著名的数据分析平台ELK。

Sleuth基本概念

        Sleuth借鉴了Google Dapper的设计,先了解以下两个概念:

        图10-1简单地描述了跨度的概念。

Spring Cloud中微服务跟踪的示例分析

图10-1 跨度

        如图10-1,用户或外部程序调用A服务,此次调用看作是跨度A,A服务还要调用B服务,在跨度A的基础上会产生跨度B,跨度B是跨度A的一部分,在Sleuth的设计上,跨度A是B的父跨度。因此在整个跟踪过程中,这些跨度是树状结构的。

        除了跟踪和跨度外,还要了解一下Annotation(事件标识),它主要用于记录事件的存在,主要包括以下几个事件标识:

项目准备

        在使用Sleuth前,先准备本章的测试项目,本章主要以一个微服务集群为基础,该集群包括以下项目:

        以上的项目,均可以在codes\10目录找到对应的源码,几个项目的结构请见图10-2。

Spring Cloud中微服务跟踪的示例分析

图10-2 测试项目结构

        以上几个测试项目是一个简单的Spring Cloud集群,销售服务依赖了“图书服务”和“支付服务”。

感谢你能够认真阅读完这篇文章,希望小编分享的“Spring Cloud中微服务跟踪的示例分析”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

推荐阅读:
  1. 从架构演进的角度聊聊Spring Cloud都做了些什么?
  2. spring cloud分布式整合zipkin链路跟踪的示例分析

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

spring cloud

上一篇:Testbench中的checker如何理解

下一篇:linux中如何删除用户组

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》