在本文中,我们将了解使用Zipkin和Spring cloud sleuth框架的微服务分布式跟踪。
尽管微服务具有自身的挑战,但微服务是出色的架构。 复杂的微服务架构具有与其他微服务的下游和上游依存关系,并且一切都是相互联系的。 在大多数情况下,各个团队只是专注于自己的服务,因此在微服务分布式环境中,很难找到任何延迟或在运行时跟踪实际问题。
1.分布式跟踪
随着微服务架构的复杂性增加,跨服务和服务器实例的统一可观察性变得至关重要。 每个服务请求都经过多个服务层,使用传统的调试技术来识别延迟或任何运行时问题变得越来越困难。 分布式跟踪提供了对通过多种服务传输的请求的整体视图,从而可以立即识别问题。
1.1分布式跟踪词汇
- 跨度 –跨度是一项单独的操作。
- 跟踪 –跟踪是一个由跨度组成的端到端延迟图。
- 示踪 -示踪剂记录跨度和传递需要方面将它们连接到跟踪。
2. Zipkin
Zipkin是一个开放源代码的分布式系统,它提供了用于发送,接收,存储和可视化跟踪详细信息的机制。 这有助于团队将服务器实例之间的活动关联起来,并对我们的服务中发生的事情有更深入的了解。 Zipkin提供UI界面来分析服务之间的跟踪和调用图详细信息。
2.1 Zipkin安装
可以使用三种不同的方式安装zipkin服务器。
- Java –我们可以执行以下
wget
命令来下载最新的zipkin服务器。 如果没有安装wget
,只需复制以下URL并粘贴到浏览器中,即可下载最新的zipkin服务器。
wget -O zipkin.jar 'https://search.maven.org/remote_content?g=io.zipkin.java&a=zipkin-server&v=LATEST&c=exec'
- Zipkin源代码–我们可以从github url下面下载zipkin源代码,并在本地计算机上运行zipkin应用程序: https : //github.com/openzipkin/zipkin
- Docker –我们可以从https://github.com/openzipkin/docker-zipkin下载docker-zipkin容器
对于此示例