美文网首页
第5篇:链路监控之Sleuth和Zipkin

第5篇:链路监控之Sleuth和Zipkin

作者: 小肥爬爬 | 来源:发表于2021-03-08 15:47 被阅读0次

    为什么要链路监控

    用了微服务之后, 组件内部调来调去, 如果想要获得数据或者排查故障怎么办? 总不能每个服务都加log, 根据log 去判断... 所以就有了 Sleuth 和 Zipkin

    Sleuth 负责在微服务间收集数据, Zipkin 负责存储并且展示, 两者就是这样的关系.

    下载启动zipkin

    zipkin是个jar包, 是要下载启动的. 官方文档很好很贴心:

    curl -sSL https://zipkin.io/quickstart.sh | bash -s
    java -jar zipkin.jar
    

    注意, 这样启动的话数据只会放在内存. 等熟悉了之后我们再把数据放到其他存储方式.

    sleuth-zipkin-demo 工程解读

    工程位于: https://gitee.com/xiaofeipapa/spring-cloud-demo
    目录是: sleuth-zipkin-demo

    修改gateway项目

    在配置文件里加上:

      zipkin:
        base-url: http://127.0.0.1:9411/ #zipkin 的服务端地址
        sender:
          type: web #采集日志向服务端传递的方式,还有mq等其他方式
        sleuth:
          sampler:
            probability: 1 # 采集日志比率 如 0.1
    

    这样就可以了, 就是这么的简单.

    测试

    启动各个项目, 在浏览器访问: http://localhost:10000/api/user/test_feign

    然后打开 http://localhost:9411/ 点击+ , 选择 serviceName = back-gateway, 点击 Run Query, 就会看到如下图:

    image.png

    点击show 之后就能看到各种细节:


    image.png

    zipkin 使用rabbitmq

    默认zipkin采用 http的方式收集数据, 相对而言, mq模式会更稳妥, 更不容易丢失数据. 以下记录zipkin 使用rabbimq的方式

    安装rabbitmq

    可以下载安装rabbitmq, 也可以直接用docker 启动

    sudo docker pull rabbitmq:management
    sudo docker run -d -p 5672:5672 -p 15672:15672 --name rabbitmq rabbitmq:management
    

    然后访问 localhost:15672 , 用户名密码都是guest , 会发现安装已成功.


    image.png

    修改zipkin的采集方式

    将配置文件修改如下:

      zipkin:
        base-url: http://127.0.0.1:9411/ #zipkin 的服务端地址
        sender:
          type: rabbit
        sleuth:
          sampler:
            probability: 1 # 采集日志比率 如 0.1
    
        # rabbitmq config
        rabbitmq:
          host: localhost
          port: 15672
          username: guest
          password: guest
    

    将所有服务都重新启动, 然后访问 http://localhost:10000/api/user/test_feign , 然后在rabbitmq的管理界面, 会看到确实有mq消息产生了:

    image.png

    相关文章

      网友评论

          本文标题:第5篇:链路监控之Sleuth和Zipkin

          本文链接:https://www.haomeiwen.com/subject/djjpqltx.html