返回介绍

第 9 章 使用 Spring Cloud Sleuth 和 Zipkin 进行分布式跟踪

发布于 2025-04-22 21:54:09 字数 1264 浏览 0 评论 0 收藏

本章主要内容

  • 使用 Spring Cloud Sleuth 将跟踪信息注入服务调用
  • 使用日志聚合来查看分布式事务的日志
  • 通过日志聚合工具进行查询
  • 在跨多个微服务调用时,使用 OpenZipkin 直观地理解用户的事务
  • 使用 Spring Cloud Sleuth 和 Zipkin 定制跟踪信息

微服务架构是一种强大的设计范型,可以将复杂的单体软件系统分解为更小、更易于管理的部分。这些可管理的部分可以独立构建和部署。然而,这种灵活性是要付出代价的,那就是复杂性。因为微服务本质上是分布式的,所以要调试问题出现的地方可能会让人抓狂。服务的分布式特性意味着必须在多个服务、物理机器和不同的数据存储之间跟踪一个或多个事务,然后试图拼凑出究竟发生了什么。

本章列出了可能实现分布式调试的几种技术。在这一章中,我们将关注以下内容。

  • 使用关联 ID 将跨多个服务的事务链接在一起。
  • 将来自多个服务的日志数据聚合为一个可搜索的源。
  • 可视化跨多个服务的用户事务流,并理解事务每个部分的性能特征。

为了完成这 3 件事,我们将使用以下 3 种不同的技术。

  • Spring Cloud Sleuth——Spring Cloud Sleuth 是一个 Spring Cloud 项目,它将关联 ID 装备到 HTTP 调用上,并将生成的跟踪数据提供给 OpenZipkin 的钩子。Spring Cloud Sleuth 通过添加过滤器并与其他 Spring 组件进行交互,将生成的关联 ID 传递到所有系统调用。
  • Papertrail——Papertrail 是一种基于云的服务(基于免费增值),允许开发人员将来自多个源的日志数据聚合到单个可搜索的数据库中。开发人员可以为日志聚合选择的解决方案包括内部部署解决方案、基于云解决方案、开源解决方案和商业解决方案。本章稍后将介绍几种备选方案。
  • Zipkin——Zipkin 是一种开源数据可视化工具,可以显示跨多个服务的事务流。Zipkin 允许开发人员将事务分解到它的组件块中,并可视化地识别可能存在性能热点的位置。

要开始本章的内容,我们从最简单的跟踪工具——关联 ID 开始。

注意

本章的部分内容依赖于第 6 章中介绍的内容(特别是 Zuul 的前置过滤器、路由过滤器和后置过滤器)。如果读者还没有读过第 6 章,建议在阅读这一章之前先读一读。

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。