Spring Cloud Zipkin是微服务的链路跟踪组件,帮助详细了解一次request&response的总计时,及每个微服务的消耗时间、微服务名称、异常信息等等过程信息。

(一) 版本说明

a) Spring boot 2.0.6.RELEASE

b) Spring cloud Finchley.SR2

c) Java version 1.8

(二) 服务端项目设置

1. Pom文件

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-zipkin</artifactId>

<version>2.0.2.RELEASE</version>

</dependency>

<dependency>

<groupId>io.zipkin.java</groupId>

<artifactId>zipkin-server</artifactId>

<version>2.11.12</version>

<exclusions>

<exclusion>

<groupId>org.apache.logging.log4j</groupId>

<artifactId>log4j-slf4j-impl</artifactId>

</exclusion>

</exclusions>

</dependency>

<dependency>

<groupId>io.zipkin.java</groupId>

<artifactId>zipkin-autoconfigure-ui</artifactId>

<version>2.11.12</version>

</dependency>

2. application.yml配置文件

server:

port: 1601

eureka:

instance:

hostname: 192.168.1.78

prefer-ip-address: true

ip-address: 192.168.1.129

lease-renewal-interval-in-seconds: 10

lease-expiration-duration-in-seconds: 30

client:

service-url:

defaultZone: http://${eureka.instance.hostname}:1001/eureka/,http://${eureka.instance.hostname}:1002/eureka/,http://${eureka.instance.hostname}:1003/eureka/

management:

metrics:

web:

server:

auto-time-requests: false

endpoints:

web:

base-path: "/actuator"

exposure:

include: "*"

endpoint:

health:

show-details: ALWAYS

spring:

application:

name: monitorservice

3. 主要参数说明

a) spring.application.name 项目名称

b) server.port 运行端口号

c) eureka.server.enable-self-preservation 是否启用自我保护功能,该功能默认是启用,但为了快速的响应服务的上下线,一般在开发环境把自我保护功能禁用

d) client.client.service-url.defaultZone 服务注册中心地址,这里是交叉设置3个服务自理实例

e) client.instance.lease-renewal-interval-in-seconds 发送心跳的频率

f) client.instance.lease-expiration-duration-in-seconds 失效间隔,这个主要是判断客户端还活着,一般设置为client.instance.lease-renewal-interval-in-seconds的3倍。

g) 其它参数说明可以参考官方说明,需要说明的是spring cloud 每次版本迭代都有配置参数的变更,最好是参考相对应的版本参数说明

(三) 客户端项目设置

1. Pom文件

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-zipkin</artifactId>

<version>2.0.2.RELEASE</version>

</dependency>

2. application.yml配置文件

spring:

application:

name: callbackservice

zipkin:

base-url: http://192.168.1.129:1601

sleuth:

sampler:

percentage: 1.0

3. 主要参数说明

a) spring.application.name 项目名称

b) spring.zipkin.base-url zipkin服务器地址

c) spring.zipkin.sleuth.sampler.percentage 采集率,取值为 0.1~1.0,如果测试环境可以设置为1.0,全部采集

(四) 项目运行

1. 运行服务端程序,由于我们注册到了治理中心,可以看到如下所示

微服务架构之spring cloud zipkin

点击链接可以看到zipkin的看板如下,由于还没有客户端进来,所以是空的。

微服务架构之spring cloud zipkin

2. 客户端项目运行,运行clientservice、callbackservice、demoserviceimpl 3个项目,前两个是项目调用后一个项目提供的服务,方便查看跟踪效果。

微服务架构之spring cloud zipkin

3. 查看效果

a) 在PostMan多访问几次clien或者callback项目,然后再观察zipkin看板,如下所示,显示每次request的列表

微服务架构之spring cloud zipkin

b) 点击其中一个条,查看详细信息,可以查看该查询的消耗时间、经过的服务数、服务深度 等等。

微服务架构之spring cloud zipkin

微服务架构之spring cloud zipkin

c) 点击每次服务链中的某次服务,可以查查某次服务调用的具体信息如下所示

微服务架构之spring cloud zipkin

d) 如果调用失败,点击对应的服务,查看失败详情,以辅助解决问题。

微服务架构之spring cloud zipkin

e) 查询依赖可以看到每次调用依赖关系图

微服务架构之spring cloud zipkin

  这样spring cloud zipkin链路跟踪就介绍完了,如果在开发中遇到问题,也可以留言共同探讨共同进步。

相关文章:

猜你喜欢
相关资源
相似解决方案