Spring Cloud微服务实践之路——基础篇(九):分布式跟踪Zipkin

作者:禅与计算机程序设计艺术

1.简介

分布式系统往往由多台服务器组成,为了解决各个服务之间调用链路的可视化、统一的日志记录、监控和追踪等问题,提升系统的运行质量、稳定性和可用性,云原生计算基金会(CNCF)推出了OpenTracing规范。该规范定义了一套应用级的语义标准,使得开发者可以轻松实现分布式跟踪功能,只需要在每一个服务中引入相关的库和配置即可。目前主流的分布式跟踪组件有Google Dapper、Twitter Zipkin和Apache SkyWalking。本文主要对Spring Cloud Sleuth组件进行详细介绍,并结合一个实际案例分享如何利用Zipkin来解决微服务架构中的分布式追踪问题。

2.基本概念及术语说明

分布式追踪(Distributed tracing)也叫作服务间调用链路追踪。它通过记录一个分布式系统内请求的流程来帮助开发人员理解系统的行为、排查问题和优化性能。当用户发起一次业务请求时,该请求通常会涉及到多个服务节点之间的调用。这些服务节点包括前端的请求接口、后台的服务节点、消息中间件、数据库、缓存等。每经过一个节点,就会产生一次远程调用,整个过程都将形成一条复杂的调用链路。分布式追踪工具可以在调用链路中记录下时间戳、服务名称、请求参数、响应结果、错误信息、耗时等信息。其最终目的是帮助定位故障和分析性能瓶颈。

OpenTracing

OpenTracing是分布式追踪的规范。它提供了一套基于上下文的API来创建、propagating和 extracting trace context。一个trace是一个逻辑的执行单元,比如一个用户的点击行为、一系列的依赖调用。context代表了一个分布式追踪的环境,它包含了所有在一个trace中所需的信息,包括trace id、span id、baggage

猜你喜欢

转载自blog.csdn.net/universsky2015/article/details/132288990