zoukankan      html  css  js  c++  java
  • 微服务架构之spring cloud zipkin

    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. 运行服务端程序,由于我们注册到了治理中心,可以看到如下所示

    clip_image002

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

    clip_image004

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

    clip_image005

    3. 查看效果

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

    clip_image007

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

    clip_image009

    clip_image011

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

    clip_image013

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

    clip_image015

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

    clip_image017

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

  • 相关阅读:
    fopen & fcolse & fseek & ftell & fstat 文件操作函数测试
    python基础练习题30道
    2636652995 揭秘骗子qq
    python的异常处理try/except 万能处理exception
    类的装饰器的基本原理
    描述符的应用
    描述符
    组合的方式完成授权
    继承的方式完成包装__attr__
    类的内置方法__attr__介绍
  • 原文地址:https://www.cnblogs.com/lzh-boy/p/10381471.html
Copyright © 2011-2022 走看看