啦啦啦啦啦!收藏微服务开发框架SpringCloud

46 Zipkin Server的部署和配置

2022-01-14  本文已影响0人  木子教程

(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

image-20211231215408986.png

客户端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 控制台,我们可以根据条件追踪每次请求调用过程

image-20211231215725962.png

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

image-20211231215750162.png

基于消息中间件收集数据

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

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


image-20211231220028456.png

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

image-20211231220154640.png

其中 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

(3) 测试

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

可以看到如下效果:

上一篇 下一篇

猜你喜欢

热点阅读