第十四章 AlibabaCloud微服务下的链路追踪系统

1.微服务架构下的排查问题复杂性概述

  • 两个常⻅的问题
    微服务调⽤链路出现了问题怎么快速排查?
    微服务调⽤链路耗时⻓怎么定位是哪个服务?
  • 链路追踪系统
    分布式应⽤架构虽然满⾜了应⽤横向扩展的需求,但是运维和诊断的过程变得越来越复杂,例如会遇到接⼝诊断困难、应⽤性能诊断复杂、架构分析复杂等难题,传统的监控⼯具并⽆法满⾜,分布式链路系统由此诞⽣
  • 核⼼
    将⼀次请求分布式调⽤,使⽤GPS定位串起来,记录每个调⽤的耗时、性能等⽇志,并通过可视化⼯具展示出来
  • 注意:AlibabaCloud全家桶还没对应的链路追踪系统,我们使⽤Sleuth和zipkin

2.SpringCloud的链路追踪组件Sleuth

  • 什么是Sleuth
    ⼀个组件,专⻔⽤于记录链路数据的开源组件
    ⽂档:https://spring.io/projects/spring-cloud-sleuth
    添加依赖

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

    案例
    在这里插入图片描述 第⼀个值 ,api-gateway,spring.application.name的值
    第⼆个值,ba6baabd40836aee,sleuth⽣成的⼀个ID,叫Trace ID,⽤来标识⼀条请求链路,⼀条请求链路中包含⼀个Trace ID,多个Span ID
    第三个值,ba6baabd40836aee、spanid 基本的⼯作单元,获取元数据,如发送⼀个http
    第四个值:true,是否要将该信息输出到zipkin服务中来收集和展示

3.可视化链路追踪系统Zipkin

  • 什么是zipkin
    官网:https://zipkin.io/
    ⼤规模分布式系统的APM⼯具(ApplicationPerformance Management),基于Google Dapper的基础实现,和sleuth结合可以提供可视化web界⾯分析调⽤链路耗时情况

  • 同类产品
    鹰眼(EagleEye)
    CAT
    twitter开源zipkin,结合sleuth
    Pinpoint,运⽤JavaAgent字节码增强技术
    StackDriver Trace (Google)

  • 启动服务

        java -jar  zipkin-server-*exec.jar                                                                
    

    访问⼊⼝:http://127.0.0.1:9411/zipkin/
    zipkin组成:Collector、Storage、Restful API、WebUI组成
    在这里插入图片描述

    4.链路追踪组件Zipkin+Sleuth整合

  • sleuth收集跟踪信息通过http请求发送给zipkin server

  • zipkin server进⾏跟踪信息的存储以及提供Rest API即可

  • Zipkin UI调⽤其API接⼝进⾏数据展示默认存储是内存,可也⽤mysql 或者elasticsearch等存储

  • 微服务加⼊依赖

        <dependency>
             <groupId>org.springframework.cloud</groupId>
             <artifactId>spring-cloud-starter-zipkin</artifactId>
         </dependency>                                                      
    
  • 配置地址和采样百分⽐配置

       spring:
         application:
            name: api-gateway
         zipkin:
            base-url: http://192.168.3.104:9411/ #zipkin地址
            discovery-client-enabled: false #不⽤开启服务发现
         sleuth:
           sampler:
             probability: 1.0 #采样百分⽐                                                  
    

    默认为0.1,即10%,这⾥配置1,是记录全部的sleuth信息,是为了收集到更多的数据(仅供测试⽤)在分布式系统中,过于频繁的采样会影响系统性能,所以这⾥配
    置需要采⽤⼀个合适的值
    在这里插入图片描述
    在这里插入图片描述

5.链路追踪系统Zipkin持久化配置

  • 现存在的问题
    服务重启会导致链路追踪系统数据丢失

  • 持久化配置:mysql或者elasticsearch
    创建数据库表
    启动命令

         java -jar zipkin.jar --STORAGE_TYPE=mysql --MYSQL_HOST=192.168.3.102 --MYSQL_TCP_PORT=3306  --MYSQL_DB=zipkin_log --MYSQL_USER=root --MYSQL_PASS=123456  
    

    在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值