暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

微服务下的分布式链路追踪系统Sleuth+Zipkin

306

微服务存在的问题:

    微服务调用链路复杂,如果出现了问题【不方便快速排查和定位】。分布式应⽤架构虽然满⾜了应⽤横向扩展的需求,但是运维和诊断的过程变得 越来越复杂,例如会遇到接⼝诊断困难、应⽤性能诊断复杂、架构分析复杂等难题,传统的监控⼯具并⽆法满⾜,分布式链路系统由此诞⽣。

核心:

    将⼀次请求分布式调⽤,使⽤GPS定位串起来,记录每个调⽤的耗时、性能等⽇志,并通过可视化⼯具展示出来。

Sleuth的介绍:一款专⻔⽤于记录链路数据的开源组件,通过记录每一个分布式调用中每一个微服务的元数据信息【包括摘要、时间戳事件、关键值注释(tags)、span的ID、以及进度ID

微服务中引入Sleuth依赖

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


    Zipkin介绍:是一款分布式系统的应用性能管理工具可,可以和Sleuth进行整合,Sleuth收集的元数据信息通过http和Zipkin进行交互,Zipkin将这些元数据信息进行可视化展示。Zipkin是一款C/S架构的组件,客户端收集的数据发送到服务端进行展示。

    0、下载对应的jar包,启动Zipkin的后台服务(其实就是一个java项目)

      java -jar zipkin-server-2.12.9-exec.jar


      zipkin访问⼊⼝:http://127.0.0.1:9411/zipkin/

      1、微服务中引入Zipkin的依赖

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

        2、添加Zipkin的配置文件application.yml

          spring:
          application:
          name: api-gateway
          zipkin:
          base-url: http://127.0.0.1:9411/ #zipkin地址
          discovery-client-enabled: false #不用开启服务发现
          #指定sleuth的采样百分比,默认是0.1
          sleuth:
          sampler:
          probability: 1.0 #采样百分比


          如果需要将zipkin收集的元数据信息持久化到数据库中,需要去官网找一下我们应该设计什么样格式的数据库【一般第三方中间件官方都会有说明】,然后建好数据库以后启动服务端程序的时候指定数据库即可。

          带持久化的启动zipkin

            java -jar zipkin-server-2.12.9-exec.jar --STORAGE_TYPE=mysql --MYSQL_HOST=127.0.0.1 --MYSQL_TCP_PORT=3306 --MYSQL_DB=zipkin_log --MYSQL_USER=root --MYSQL_PASS=mysqlroot

            zipkin的访问后台页面

            访问localhost:8889/order-server/api/v1/video_order/save  接口的调用链路如下:

            总结:

            中间件的架构图:客户端项目-后台服务项目-前端界面UI

            vip课程是指同学们加入我们的vip学习群,vip群里面的小伙们可以永久参加所有的直播算法刷题课程,我每天直播的时间是早上8:30-9:30,通过腾讯会议在线讲解算法刷题,语言包括c++,java和golang版本,只要加入了vip群,除了每天的直播刷题外,前45位加入的同学,我会额外赠送我所有的学习实战资料,包括docker、git、java io、leetcode算法、java源码分析、jdk新特性、kafka、linux、mybatis、mybatis plus、mysql、mysql刷题、netty、nginx、python、rabbitmq、redis、sharding jdbc、spring、springboot、springcloud、并发编程、html+css、微信支付实战所有内容的学习笔记,总共800+张的文档资料。

            vip刷题班课程的价格:800元/人 ,联系我即可报名参加。



            文章转载自梁霖编程工具库,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

            评论