ZipKin的集成(链路追踪的图形界面话工具,这里我用的是Sleuth)

首先创建这4个项目

它们之间的调用关系如下:1调用2,2调用3和4

下面是8061端口sleuth的日志信息

下面是8062端口sleuth的日志信息

下面是8063端口sleuth的日志信息

下面是8064端口sleuth的日志信息

可以看出它们的第二个trace(链路的id)是一致的,第三个spanId(块id)不一致,这样看有点麻烦。

所以下面引出ZipKin用图形界面化工具把这个展示出来

ZipKin链接:https://pan.baidu.com/s/15usJnSQ4tWgPTkJravEbWw?pwd=1234
提取码:1234

将下载完成后的ZipKin的jar包上传至linux中,如下图:

启动ZipKin(端口号9411)服务端,下面为启动命令

java -jar zipkin-server-2.23.18-exec.jar

启动成功后,界面是这样的(linux环境中必须有JDK)

启动成功后通过浏览器访问,输入以下网址:你的Linux虚拟机地址:9411就可以访问了,以我的为例,进去之后是这样的

想让你的项目用到这个zipkin还需要再每个项目的pom.xml加入下面依赖

     <!--   添加zipkin依赖包     -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-zipkin</artifactId>
            <version>2.2.8.RELEASE</version>
        </dependency>

然后再你的每个配置文件(application.yml)中添加如下配置:这里的地址是你linux的地址

spring:
  zipkin:
    base-url: http://192.168.242.128:9411/ #zipkin server的请求地址
    discovery-client-enabled: false #让zipkin把它当成一个URL,而不要当作服务名
  sleuth:
    sampler:
      probability: 1.0 #采样百分比

然后重新启动这几个服务后,然后再次项目之间的请求后,然后登录zipkin查看,下面是我的

### 使用 Zipkin 进行分布式链路追踪的方法 #### 1. 安装和启动 Zipkin 服务器 要使用 Zipkin,首先需要安装并启动 Zipkin 服务器。可以通过官方提供的预编译 JAR 文件快速部署,或者从 GitHub 上克隆源码自行构建。 以下是基于 JAR 文件的方式: ```bash wget https://search.maven.org/remotecontent?filepath=io/zipkin/java/zipkin-server/2.23.16/zipkin-server-2.23.16-exec.jar -O zipkin.jar java -jar zipkin.jar ``` 如果希望从源码构建,则按照以下步骤操作[^4]: ```bash git clone https://github.com/openzipkin/zipkin.git cd zipkin ./mvnw -DskipTests --also-make -pl zipkin-server clean install java -jar ./zipkin-server/target/zipkin-server-*exec.jar ``` 默认情况下,Zipkin 将监听 `localhost` 的 HTTP 请求端口 `9411`,访问地址为 `http://localhost:9411/zipkin/`。 --- #### 2. 配置客户端应用支持 Zipkin 跟踪 为了让应用程序能够向 Zipkin 发送跟踪数据,通常会引入一些库来简化集成工作。例如,在 Spring Cloud 应用中,可以借助 **Spring Cloud Sleuth** 来自动完成这一过程。 在 Maven 或 Gradle 中添加依赖项: 对于 Maven: ```xml <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-sleuth</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-stream-binder-rabbit</artifactId> </dependency> ``` 对于 Gradle: ```gradle implementation 'org.springframework.cloud:spring-cloud-starter-sleuth' implementation 'org.springframework.cloud:spring-cloud-stream-binder-rabbit' ``` 配置文件中启用 Zipkin 支持(以 YAML 格式为例): ```yaml spring: sleuth: sampler: probability: 1.0 # 设置采样率为 1 表示所有请求都会被记录 cloud: stream: binders: rabbit: type: rabbit environment: spring: rabbitmq: host: localhost port: 5672 zipkin: base-url: http://localhost:9411 # 指定 Zipkin Server 地址 ``` 上述配置启用了对 RabbitMQ 的绑定,并指定了 Zipkin Server 的 URL。 --- #### 3. 向 Zipkin 报告跟踪数据 一旦客户端成功发送了跟踪数据至 Zipkin Server,就可以通过 Web UI 查看详细的调用链路信息。Zipkin 提供了一个直观的界面,允许开发者按时间范围筛选、查询特定的服务或跨度(span),以及查看具体的延迟分布情况[^3]。 --- #### 4. 分析性能瓶颈与优化建议 通过 Zipkin 的图形化界面,可以清晰地看到各个服务之间的调用关系及其耗时统计。这有助于识别哪些环节存在潜在的性能问题。例如,某个 API 响应较慢可能是由于数据库查询效率低下引起的;而另一个可能的原因则是外部第三方接口超时所致[^1]。 为了进一步提升系统的可观察性,还可以结合其他监控工具如 Prometheus 和 Grafana 实现更全面的数据采集与可视化效果[^5]。 --- ### 示例代码片段 下面是一个简单的 Java 方法演示如何手动创建 Span 并将其提交给 Zipkin: ```java import brave.Span; import brave.Tracer; public class ExampleService {
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值