Spring Cloud 应用篇 之 Spring Cloud Sleuth + Zipkin(二)集成 RabbitMQ
Spring Cloud Sleuth 在整合 Zipkin 时,不仅实现了以 HTTP 的方式收集跟踪信息,还实现了通过消息中间件来对跟踪信息进行异步收集的封装。在上一篇 Spring Cloud 应用篇 之 Spring Cloud Sleuth + Zipkin(一)链路监控 中,我们知道了 Spring Boot 2.0 之后 Zipkin 不再推荐我们来自定义 Server 端了,那么集成 RabbitMQ 时,如何才能用官方提供的 jar 包启动后从 RabbitMQ 中获取链路跟踪信息呢?
(一)Zipkin Server 的启动
根据官方给的方式,我们可以使用 java -jar zipkin.jar 的方式启动 Zipkin Server,那么在使用这个命令的时候,我们是可以设置一些参数的,这里我们可以通过设置环境变量让 Zipkin 从 RabbitMQ 中获取到跟踪信息,命令如下:
RABBIT_ADDRESSES=192.168.174.128 java -jar zipkin.jar或者
java -jar zipkin.jar --zipkin.collector.rabbitmq.addresses=192.168.174.128而连接到 RabbitMQ 的用户名和密码就用默认的 guest
启动后,访问 http://192.168.174.128:9411/
Zipkin Server 已经成功启动了,我们访问 RabbitMQ 的 Web 管理界面 http://192.168.174.128:15672
可以看到,RabbitMQ 的 Queues 里已经创建了 一个 zipkin 的队列,说明 ZipServer 集成 RabbitMQ 成功了。下面开始搭建 Zipkin Client 端
(二)Zipkin Client 搭建
在 Zipkin Client 端,我们上一篇创建了 spring-cloud-service1、spring-cloud-service2,现在我们只需要修改它们的依赖,添加 spring-cloud-stream-binder-rabbit 依赖即可,pom 文件如下,service2 的一样。
- <?xml version="1.0" encoding="UTF-8"?>
- <project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <parent>
- <artifactId>spring-cloud-componets</artifactId>
- <groupId>com.geny</groupId>
- <version>1.0-SNAPSHOT</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <artifactId>spring-cloud-service1</artifactId>
- <dependencies>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework.cloud</groupId>
- <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework.cloud</groupId>
- <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework.cloud</groupId>
- <artifactId>spring-cloud-starter-zipkin</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework.cloud</groupId>
- <artifactId>spring-cloud-stream-binder-rabbit</artifactId>
- </dependency>
- </dependencies>
- <build>
- <plugins>
- <plugin>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-maven-plugin</artifactId>
- </plugin>
- </plugins>
- </build>
- </project>
(三)验证
为了验证 Zipkin Server 和 Client 是通过 RabbitMQ 传递信息的,我们把 Zipkin Client 端的 zipkin.base-url 修改下,让它指向错误的地址,这里就改为 http://192.168.174.128:9410/,配置文件修改如下,service2 一样修改- server:
- port: 8481
- spring:
- application:
- name: service1
- zipkin:
- #Zipkin Server 的 ip:port,这里换成自己的 Zipkin Server 的 IP 即可
- base-url: http://192.168.174.128:9410/
- #这里把抽样百分比设置为1,即信息全部采集
- sleuth:
- sampler:
- probability: 1.0
- eureka:
- client:
- service-url:
- defaultZone: http://localhost:8761/eureka/
- logging:
- level:
- root: debug
分别启动 eureka-server、spring-cloud-service1、spring-cloud-service2,访问 http://localhost:8481/service1,访问成功
刷新 Zipkin Server,http://192.168.174.128:9411/zipkin/,可以看到,Zipkin Server 已经获取到跟踪信息了
此时再来看看 RabbitMQ 的管理界面,可以看到 zipkin 这个 Queue 有消息处理,这说明我们的 Spring Cloud Sleuth + Zipkin 集成 RabbitMQ 已经成功。
源码下载:https://github.com/shmilyah/spring-cloud-componets
转载自:https://blog.csdn.net/hubo_88/article/details/80889973
阅读更多
- Spring Cloud 应用篇 之 Spring Cloud Sleuth + Zipkin(三)修改数据存储方式
- spring-cloud-sleuth集成zipkin之spring-cloud-1.3.4(Dalston.SR3)-boot(1.5.6) 学习笔记
- 分布式服务跟踪 spring-cloud-Sleuth集成zipkin
- 全链路spring cloud sleuth+zipkin
- spring cloud zipkin配置2,引入rabbitmq和mysql
- 使用Spring Cloud Sleuth和Zipkin进行分布式链路跟踪
- SpringCloud sleuth一直为false,zipkin没有记录显示
- Spring Cloud Sleuth与Zipkin整合时遇到的问题记录
- Spring Cloud Edgware新特性之九:Sleuth使用MQ方式整合Zipkin
- SpringCloud学习之sleuth&zipkin
- Spring Cloud 集成 RabbitMQ
- Spring Cloud Sleuth+Zipkin实践
- Spring Cloud(九)Sleuth+ZipKin 实现服务追踪
- spring-cloud-sleuth+zipkin追踪服务实现
- Spring Cloud Sleuth Zipkin 升级使用
- Spring Cloud Sleuth+Zipkin原理分析
- Spring Boot + Spring Cloud 构建微服务系统(八):分布式链路追踪(Sleuth、Zipkin)
- SpringCloud学习之sleuth&zipkin【二】
- Spring Cloud(十)Sleuth+ZipKin 实现服务追踪(续)
- spring cloud学习进阶篇:Spring Cloud Sleuth + Zipkin 实现分布式跟踪解决方案