千家信息网

Spring Cloud中Sleuth如何整合Zipkin

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章将为大家详细讲解有关Spring Cloud中Sleuth如何整合Zipkin,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Sleuth整合ZipkinZi
千家信息网最后更新 2026年11月01日Spring Cloud中Sleuth如何整合Zipkin

这篇文章将为大家详细讲解有关Spring Cloud中Sleuth如何整合Zipkin,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

Sleuth整合Zipkin

Zipkin简介

Zipkin是一个分布式的跟踪系统,主要用于收集、管理微服务所产生的数据。Zipkin的设计基于Google Dapper。在实际应用时,我们需要让各个微服务,向Zipkin服务器报告过程数据。对于Spring Cloud来说,已经提供了几个模块来实现数据报告功能,我们仅需要加入依赖,以及做简单配置,即可实现向Zipkin"写入"数据。

Zipkin在得到这些数据后,提供了数据查询、分析的功能,这些图形化的功能,可以让我们对微服务的调用过程、处理时间、依赖关系等数据一目了然。

构建Zipkin服务器项目

启动Zipkin服务器,可以选择使用jar包的方式,也可以往Maven项目中嵌入Zipkin服务器。

使用jar包启动,需要先下载Zipkin的启动jar包,读者可以到Zipkin的官方网站下载,地址为:http://zipkin.io/,也可以直接到本书的soft目录中下载zipkin-server-1.31.1-exec.jar。得到jar包后,使用"java -jar"命令启动Zipkin服务器,成功启动后,默认占用9411端口。

我们也可以在Maven项目中嵌入Zipkin服务器,为了简单起见,直接结合Sping Boot来构建Zipkin服务器。新建zk-server项目(代码目录为codes\10\zk-server),项目所使用的依赖请见代码清单10-1。

代码清单10-1:codes\10\zk-server\pom.xml

                    io.zipkin.java            zipkin-server                            io.zipkin.java            zipkin-autoconfigure-ui            runtime        

在application.xml中,将启动端口配置为9411,代码清单10-2为启动类。

代码清单10-2:codes\10\zk-server\src\main\java\org\crazyit\cloud\ZkServerApp.java

@SpringBootApplication@EnableZipkinServerpublic class ZkServerApp {    public static void main(String[] args) {        SpringApplication.run(ZkServerApp.class, args);    }}

为启动类加上@EnableZipkinServer注解,运行启动类,访问:http://localhost:9411,可以看到Zipkin的主界面,如图10-3所示。

图10-3 Zipkin主界面

配置微服务

接下来,需要配置各个微服务,让它们往Zipkin服务器写入数据。本章案例主要有3个微服务模块:图书、支付、销售。几个模块提供了以下服务:

  • 图书模块(test-book-service):提供了图书查询服务,地址为"/book/{bookId}",返回一个Book对象。

  • 支付模块(test-pay-service):提供支付服务,地址为"/pay",没有返回,仅做简单的控制台输出。

  • 销售模块(test-sale-service):提供销售服务,地址为"/sale/{bookId}",会调用图书模块和支付模块的接口,销售服务的实现,请见代码清单10-3。

代码清单10-3:

codes\10\test-sale-service\src\main\java\org\crazyit\cloud\SaleApplication.java

    @RequestMapping(method = RequestMethod.GET, value = "/sale/{bookId}")    public String sale(@PathVariable("bookId") Integer bookId) {        System.out.println("销售模块处理销售");        // 查找书本        Book book = bookService.getBook(bookId);        // 进行支付        payService.doPay(new BigDecimal(10));        return "销售成功,书名: " + book.getName() + ", 作者:" + book.getAuthor();    }

销售模块调用图书、支付模块接口,使用的是Feign框架,该框架的使用,读者可参考本书的相关章节,在此不再赘述。

实现了微服务后,加3个模块加入以下依赖:

                    org.springframework.cloud            spring-cloud-starter-zipkin                            org.springframework.cloud            spring-cloud-sleuth-zipkin        

接下来,还要为各个模块配置Zipkin服务器,application.yml的配置如下:

spring:  zipkin:    base-url: http://localhost:9411  sleuth:    sampler:      percentage: 1.0

在application.yml中,使用spirng.zipkin.base-url来配置Zipkin的服务器,使用spring.zipkin.sleuth.sampler.percentage来配置跨度数据的采样百份比,默认值为0.1,也就是会向Zipkin发送约10%的跨度数据。本例中为了查看效果,直接配置为1,也就是全部的跨度数据都会被发送到Zipkin。在生产环境中,建议还是按照具体的需求进行抽样,以免增加服务器的负载。

为了能在各个微服务的控制台中看到Sleuth的输出,还需要为3个微服务配置日志级别,在application.yml中加入以下配置:

logging:  level:    root: INFO    org.springframework.cloud.sleuth: DEBUG

关于"Spring Cloud中Sleuth如何整合Zipkin"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

服务 模块 数据 服务器 配置 销售 代码 清单 支付 图书 项目 地址 整合 功能 篇文章 跨度 成功 接下来 也就是 报告 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技官网 科技创新与互联网经济 疫情对互联网科技公司影响 礼当家互联网科技 壹账通互联网科技 伴你行互联网科技有限公司 天下捷融互联网科技 银川新华互联网科技学校地址 哈尔滨新华互联网科技学院 互联网企业和科技型企业 昭通互联网科技选哪家 互联网5g黑科技有哪些 如何创新互联网科技 广州新华互联网科技学校电竞方面 恒生互联网科技业指数调整周期 皮皮虾互联网科技有限公司 抖集互联网科技技术咨询 互联网高科技行业有哪些企业 10位科技互联网大佬 科技互联网企业在行动 互联网科技的 衡水科技产业互联网平台 互联网科技热点资讯 中国航天科技大学国际工业互联网 天津腾达互联网科技有限公司 广州千川互联网科技有限公司 西安有哪些互联网高科技企业 容联科技互联网电商 瑞安市蟠桃会互联网科技有限公司 互联网 科技节活动 微视频大赛
0