zipkin 服务跟踪

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

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

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

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

第一步:部署服务。

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

1、docker 部署服务。

2、下载jar运行。

3、下载源码编译运行。

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

 

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

 

 

 

第二步: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

 

第三步测试结果:

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

 

posted on   陈惟鲜的博客  阅读(336)  评论(0编辑  收藏  举报

编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示