登录
    Technology changes quickly but people's minds change slowly.

zipkin 实现链路追踪

技术宅 破玉 1622次浏览 0个评论

参考链接链路跟踪

解释

  • Span:基本工作单元,例如,在一个新建的span中发送一个RPC等同于发送一个回应请求给RPC,span通过一个64位ID唯一标识,trace以另一个64位ID表示,span还有其他数据信息,比如摘要、时间戳事件、关键值注释(tags)、span的ID、以及进度ID(通常是IP地址)
    span在不断的启动和停止,同时记录了时间信息,当你创建了一个span,你必须在未来的某个时刻停止它。
  • Trace:一系列spans组成的一个树状结构,例如,如果你正在跑一个分布式大数据工程,你可能需要创建一个trace。
  • Annotation:用来及时记录一个事件的存在,一些核心annotations用来定义一个请求的开始和结束
    • cs – Client Sent -客户端发起一个请求,这个annotion描述了这个span的开始
    • sr – Server Received -服务端获得请求并准备开始处理它,如果将其sr减去cs时间戳便可得到网络延迟
    • ss – Server Sent -注解表明请求处理的完成(当请求返回客户端),如果ss减去sr时间戳便可得到服务端需要的处理请求时间
    • cr – Client Received -表明span的结束,客户端成功接收到服务端的回复,如果cr减去cs时间戳便可得到客户端从服务端获取回复的所有所需时间
      将Span和Trace在一个系统中使用Zipkin注解的过程图形化:

构建zipkin-server

新建 springboot 项目
增加如下配置:


            io.zipkin.java
            zipkin-server
            2.11.13
        

        
            io.zipkin.java
            zipkin-autoconfigure-ui
            2.11.13
        

在其程序入口类, 加上注解@EnableZipkinServer,开启ZipkinServer的功能:

@EnableZipkinServer
@SpringBootApplication
public class ZipkinApplication {

    public static void main(String[] args) {
        SpringApplication.run(ZipkinApplication.class, args);
    }

}

yml 问价配置端口:

server:
  port: 19411

客户端配置

给每个微服务增加如下配置,引入依赖

 
            org.springframework.cloud
            spring-cloud-starter-zipkin
        

yml 文件都增加如下配置

spring:
  zipkin:
    base-url: 19411

然后启动每个服务
访问 本地的服务 端口号 19411
报错:

java.lang.IllegalArgumentException: Prometheus requires that all meters with the same name have the same set of tag keys.

增加如下配置

management:
  metrics:
    web:
      server:
        auto-time-requests: false

华裳绕指柔, 版权所有丨如未注明 , 均为原创|转载请注明zipkin 实现链路追踪
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址