Zipkin Server新版本的部署和配置

本文介绍了如何使用Zipkin进行服务链路追踪,包括下载与启动ZipkinServer,客户端集成Sleuth以及配置采样率。此外,还详细讲解了如何通过RabbitMQ实现异步消息传输,确保追踪数据的可靠性。在遇到ZipkinServer不可用时,消息将暂存于RabbitMQ,待服务恢复后自动处理。
摘要由CSDN通过智能技术生成

https://zhuanlan.zhihu.com/p/457555795

(1) Zipkin Server下载

从spring boot 2.0开始,官方就不再支持使用自建Zipkin Server的方式进行服务链路追踪,而是直接提 供了编译好的 jar 包来给我们使用。可以从官方网站下载先下载Zipkin的web UI,我们这里下载的是 zipkin-server-2.12.9-exec.jar

(2) 启动

在命令行输入 java -jar zipkin-server-2.12.9-exec.jar 启动 Zipkin Server

  • 默认Zipkin Server的请求端口为 9411
  • Zipkin Server的启动参数可以通过官方提供的yml配置文件查找
  • 在浏览器输入 http://127.0.0.1:9411即可进入到Zipkin Server的管理后台

客户端Zipkin+Sleuth整合

通过查看日志分析微服务的调用链路并不是一个很直观的方案,结合zipkin可以很直观地显示微服务之 间的调用关系。

(1)客户端添加依赖

客户端指的是需要被追踪的微服务

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>

(2)修改客户端配置文件

zipkin:
    base-url: http://127.0.0.1:9411/ #zipkin server的请求地址
    sender:
        type: web #请求方式,默认以http的方式向zipkin server发送追踪数据
sleuth:
    sampler:
        probability: 1.0 #采样的百分比
​

指定了zipkin server的地址,下面制定需采样的百分比,默认为0.1,即10%,这里配置1,是记录全部 的sleuth信息,是为了收集到更多的数据(仅供测试用)。在分布式系统中,过于频繁的采样会影响系 统性能,所以这里配置需要采用一个合适的值。

(3) 测试

以此启动每个微服务,启动Zipkin Service。通过浏览器发送一次微服务请求。打开 Zipkin Service 控制台,我们可以根据条件追踪每次请求调用过程

单击该trace可以看到请求的细节

基于消息中间件收集数据

在默认情况下,Zipkin客户端和Server之间是使用HTTP请求的方式进行通信(即同步的请求方式),在 网络波动,Server端异常等情况下可能存在信息收集不及时的问题。Zipkin支持与rabbitMQ整合完成异 步消息传输。

加了MQ之后,通信过程如下图所示:

RabbitMQ的安装与启动

服务端启动

java -jar zipkin-server-2.12.9-exec.jar --RABBIT_ADDRESSES=127.0.0.1:5672

RABBIT_ADDRESSES : 指定RabbitMQ地址

RABBIT_USER: 用户名(默认guest)

RABBIT_PASSWORD : 密码(默认guest)

启动Zipkin Server之后,我们打开RabbitMQ的控制台可以看到多了一个Queue

其中 zipkin 就是为我们自动创建的Queue队列

客户端配置

(1) 配置依赖

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-sleuth-zipkin</artifactId>
    </dependency>
<dependency>
    <groupId>org.springframework.amqp</groupId>
    <artifactId>spring-rabbit</artifactId>
</dependency>
​

导入 spring-rabbit 依赖,是Spring提供的对rabbit的封装,客户端会根据配置自动的生产消息并发送 到目标队列中

(2) 配置消息中间件rabbit mq地址等信息

zipkin:
    #base-url: http://127.0.0.1:9411/ #zipkin server的请求地址
    sender:
        type: rabbit
        #type: web #请求方式,默认以http的方式向zipkin server发送追踪数据
    sleuth:
        sampler:
            probability: 1.0 #采样的百分比
rabbitmq:
    host: localhost
    port: 5672
    username: guest
    password: guest
    listener: # 这里配置了重试策略
            direct:
                retry:
                    enabled: true
    simple:
        retry:
            enabled: true
  • 修改消息的投递方式,改为rabbit即可。
  • 添加rabbitmq的相关配置

(3) 测试

关闭Zipkin Server,并随意请求连接。打开rabbitmq管理后台可以看到,消息已经推送到rabbitmq。 当Zipkin Server启动时,会自动的从rabbitmq获取消息并消费,展示追踪数据

可以看到如下效果:

  • 请求的耗时时间不会出现突然耗时特长的情况
  • 当ZipkinServer不可用时(比如关闭、网络不通等),追踪信息不会丢失,因为这些信息会保存在 Rabbitmq服务器上,直到Zipkin服务器可用时,再从Rabbitmq中取出这段时间的信息
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值