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

2021-03-08  本文已影响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
上一篇下一篇

猜你喜欢

热点阅读