JavaSpring bootSpringCloud

微服务架构 | 10.3 使用 Zipkin 可视化日志追踪

2022-02-07  本文已影响0人  多氯环己烷

前言

参考资料
《Spring Microservices in Action》
《Spring Cloud Alibaba 微服务原理与实战》
《B站 尚硅谷 SpringCloud 框架开发教程 周阳》

Zipkin 允许开发人员以图形方式查看事务占用的时间量,并分解在调用中涉及的每个微服务所用的时间。在微服务架构中,Zipkin 是识别性能问题的宝贵工具;


1. Zipkin 基础知识

1.1 Zipkin 链路监控的原理

Zipkin 链路监控的原理.png Zipkin 链路监控的原理1.png Zipkin 链路监控的原理2.png

2. 下载 Zipkin 服务器

Spring Cloud 从 F 版起不需要自己构建 Zipkin Server 了,只需调用 jar 包即可;

2.1 下载 zipkin-server-2.12.9-exec.jar 包

2.2 启动 Zipkin Server

Zipkin 运行界面

2.3 *Docker 部署方式

也可以使用 Docker 部署省去下载的麻烦;

3. 手动安装和配置 Zipkin 服务器

虽然 Spring Cloud 从 F 版起不需要自己构建 Zipkin Server,但这里还是提供手动构建的方法;

3.1 引入 pom.xml 依赖文件

<!-- 用于创建 Zipkin 服务器所需的核心类 -->
<dependency>
  <groupId>io.zipkin.java</groupId>
  <artifactId>zipkin-server</artifactId>
</dependency>
<!-- 用于运行 Zipkin 服务器的 UI 部分所需的核心类 -->
<dependency>
    <groupId>io.zipkin.java</groupId>
    <artifactId>zipkin-autoconfigure-ui</artifactId>
</dependency>

3.2 在主程序类上添加注解

3.3 配置跟踪数据存储方式

4. 使用 Zipkin 进行分布式跟踪

4.1 添加 pom.xml 依赖文件

需要给 Zuul 网关服务、消费者服务、提供者服务等所有服务添加依赖;

<!-- 包含在服务中启用 sleuth 的基本库 -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>

<!-- 【可选】当开发人员需要以编程方式与 sleuth 交互时添加 -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-sleuth-core</artifactId>
</dependency>

<!-- 与 Zipkin 集成 -->
<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-sleuth-zipkin</artifactId>
</dependency>

4.2 修改 application.yml 配置文件

在每个想与 Zipkin 进行通信的服务的 application.yml 配置文件中进行修改;

spring:
  zipkin:
    baseUrl: http://localhost:9411  #Zipkin 服务器的地址
  sleuth:
    sampler:
      percentage: 1 #设置跟踪级别,也即定义每个服务应该向 Zipkin 写入数据的频率,默认 10%
@Bean
public Sampler defaultSampler() {
    return new AlwaysSampler();
}

4.3 访问 9411 端口查看可视化日志

Zipkin 界面查询基本信息 点击事务查看更详细信息.png image.png 点击组织服务跨度查看调用中的额外细节.png 点击依赖查看依赖关系.png

最后

\color{blue}{\rm\small{新人制作,如有错误,欢迎指出,感激不尽!}}

\color{blue}{\rm\small{欢迎关注我,并与我交流!}}

\color{blue}{\rm\small{如需转载,请标注出处!}}

上一篇 下一篇

猜你喜欢

热点阅读