Zipkin

Zipkin 本身是一个由 Twitter 公司开源的分布式追踪系统。
Zipkin 分为 server 端和 client 端,server 用来展示数据,client 用来收集+上报数据。

准备工作

Zipkin 要先把数据存储起来,这里我们使用 Elasticsearch 来存储,所以,首先安装 es 和 es-head。
es 安装命令:

docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e
"discovery.type=single-node" elasticsearch:7.1.0

安装好后

可视化工具有三种安装方式:

  1. 直接下载软件安装
  2. 通过 Docker 安装
  3. 安装 Chrome/Firefox 插件(公众号后后台回复 es-head ,获取 Chrome 插件的离线包)
    这里采用第 3 种方式。
    RabbitMQ 安装
    Zipkin 安装:
docker run -d -p 9411:9411 --name zipkin -e ES_HOSTS=192.168.91.128 -e STORAGE_TYPE=elasticsearch -e ES_HTTP_LOGGING=BASIC -e RABBIT_URI=amqp://guest:guest@192.168.91.128:5672 openzipkin/zipkin

ES_HOSTS:es 的地址
STORAGE_TYPE:数据存储方式
RABBIT_URI:要连接的 Rabbit 的地址

实践

首先来创建一个Zipkin项目,添加web,sleuth,zipkin,rabbitmq,stream
项目创建好后,配置zipkin和rabbitmq

spring.application.name=zipkin01
# 开启链路追踪
spring.sleuth.web.client.enabled=true
# 配置采样比例,默认为 0.1 也就是说10条消息会有一条消息会存起来
spring.sleuth.sampler.probability=1
# zipkin 地址
spring.zipkin.base-url=http://192.168.91.128:9411
# 开启 zipkin
spring.zipkin.enabled=true
# 追踪消息的发送类型
spring.zipkin.sender.type=rabbit
spring.rabbitmq.host=192.168.91.128
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest

接下来提供一个测试的 HelloController:

@RestController
public class HelloController {
    private static final Logger logger = LoggerFactory.getLogger(HelloController.class);

    @GetMapping("/hello")
    public String hello(String name) {
        logger.info("zipkin01-hello");
        return "hello " + name + " !";
    }
}

然后再创建一个 zipkin02,和 zipkin01 的配置基本一致。

posted @ 2020-08-17 18:51  柒丶月  阅读(531)  评论(0编辑  收藏  举报