疯狂Spring Cloud连载(29)微服务跟踪概述

 本文节选自《疯狂Spring Cloud微服务架构实战》

京东购买地址:https://item.jd.com/12256011.html

当当网购买地址:http://product.dangdang.com/25201393.html

Spring Cloud教学视频http://blog.csdn.net/boxiong86/article/details/78399104

Spring Cloud电子书http://blog.csdn.net/boxiong86/article/details/78488226

微服务跟踪概述

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

实际问题Sleuth

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

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

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

服务跟踪系统

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

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

Sleuth基本概念

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

?      Trace表示整个跟踪的过程,从用户发起请求,到最终的响应一次跟踪包含多个跨度,这些跨度以树状结构进行保存。

?      Span跨度,表示一次调用的过程,一次跟踪包含多次的调用过程。假设用户向A服务发送请求,A服务又要调用B服务,那么此时将会产生两个跨度:用户调用A服务、A服务调用B服务

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


10-1 跨度

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

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

?      csClient Sent,表示客户端发送了请求,这个标识意味着跨度的开始。例如前面的A服务向B服务发送请求,A服务就是客户端。

?      srServer Received,表示服务端接收到请求,并开始进行处理。

?      ssServer Sent,表示服务器端完成请求的处理,并对客户端出响应。

?      crClient Received表示客户端接收到响应,意味着整个跨度的结束。

项目准备

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

?      test-eureka-serverEureka服务器,端口为8761

?      test-book-service:图书微服务,主要提供根据id查询图书的服务,端口为8081

?      test-pay-service:支付微服务,主要提供支付服务,端口为8082

?      test-sale-service:销售微服务,会调用图书服务和支付服务,端口为8083

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


10-2 测试项目结构

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

 本文节选自《疯狂Spring Cloud微服务架构实战》

Spring Cloud教学视频http://blog.csdn.net/boxiong86/article/details/78399104

Spring Cloud电子书http://blog.csdn.net/boxiong86/article/details/78488226

本书代码共享地址:https://gitee.com/yangenxiong/SpringCloud

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杨大仙的程序空间

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值