zipkin 服务跟踪

场景:系统访问服务很慢,如果在每个系统都加切面拦截arond ,打印查看访问时间。这个比较繁琐,系统多了也比较不科学。

springcloud 的一组件 zipkin 为我们提供了这样的工具。

官网:https://zipkin.io/pages/quickstart.html

分两步实现服务跟踪,查找慢点:

第一步:部署服务。

官网提供有3种方式给我们。

1、docker 部署服务。

2、下载jar运行。

3、下载源码编译运行。

最近都在使用docker,所以我选择了第一种,也是官网推荐的:docker

zipkin 服务跟踪

 

docker run -d -p 9411:9411 openzipkin/zipkin

 修改了下官网提供的脚本:加上内存限制,跟服务启动自启。重命名容器。

docker run --restart=always \
-m 1000M --memory-swap -1 \
-d --name zipkin \
 -p 9215:9411  \
 openzipkin/zipkin

运行后发现内存开销也就200多M。

CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT    MEM %               NET I/O             BLOCK I/O           PIDS
974bf61270d5        zipkin              0.05%               292.3MiB / 1000MiB   29.23%              731kB / 1.75MB      0B / 0B             18

访问:http://192.168.89.190:9215/

我这里编辑部署到服务器上:写了个zipkin_docker.sh 脚本

[root@localhost soft]# mkdir zipkin
[root@localhost soft]# cd zipkin/
[root@localhost zipkin]# vi  zipkin_docker.sh 
docker run --restart=always \
-m 1000M --memory-swap -1 \
-d --name zipkin \
 -p 9215:9411  \
 openzipkin/zipkin

zipkin 服务跟踪

 

 

 

第二步:springboot应用整合zipkin服务。

我们这里不用管服务端,客户端,只要配置上zipkin地址即可。

application.yml

spring:
  zipkin:
    enabled: true
    base-url: http://192.168.89.190:9215

 

项目pom.xml增加依赖jar

       <!--服务链路追踪-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-sleuth</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-sleuth-zipkin</artifactId>
        </dependency>

 

    <properties>
<!--zipkin2.12.x需要此版本jooq -->
        <jooq.version>3.11.11</jooq.version>
        <zipkin.version>2.12.2</zipkin.version>
        <zipkin-storage-mysql.version>2.8.4</zipkin-storage-mysql.version>
    </properties>

  我有3个服务。

 web-pc

 server-search

   server-db

 

第三步测试结果:

点击查询按钮,可以看到如下结果。点击每条记录,可以看到每个服务的具体每个方法请求耗时。。

zipkin 服务跟踪

 

上一篇:Spring Cloud 系列之 Sleuth 链路追踪(一)


下一篇:从零搭建一个SpringCloud项目之Sleuth+Zipkin(六)