You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Spring Cloud Sleuth Zipkin实现R2DBC反应式数据源埋点?

R2DBC 反应式数据源集成 Spring Cloud Sleuth Zipkin 埋点方案

你提到的R2BC应为R2DBC的笔误,针对这类反应式数据源,Spring Cloud Sleuth提供了原生集成支持,无需像JDBC那样依赖P6Spy做包装,具体实现方案如下:

1. 添加核心依赖

确保项目引入Spring Cloud Sleuth、Zipkin及R2DBC相关依赖:

Maven 配置

<dependencies>
    <!-- Spring Cloud Sleuth 核心依赖 -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-sleuth</artifactId>
    </dependency>
    <!-- Zipkin 链路上报依赖 -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-zipkin</artifactId>
    </dependency>
    <!-- Spring Data R2DBC 启动器 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-r2dbc</artifactId>
    </dependency>
    <!-- R2DBC 数据库驱动(以PostgreSQL为例,按需替换) -->
    <dependency>
        <groupId>io.r2dbc</groupId>
        <artifactId>r2dbc-postgresql</artifactId>
        <scope>runtime</scope>
    </dependency>
</dependencies>

Gradle 配置

dependencies {
    implementation 'org.springframework.cloud:spring-cloud-starter-sleuth'
    implementation 'org.springframework.cloud:spring-cloud-starter-zipkin'
    implementation 'org.springframework.boot:spring-boot-starter-data-r2dbc'
    runtimeOnly 'io.r2dbc:r2dbc-postgresql'
}

2. 配置链路追踪参数

在application.yml中配置Zipkin地址、Sleuth采样率及R2DBC数据库连接信息:

spring:
  zipkin:
    base-url: http://localhost:9411/ # 你的Zipkin服务部署地址
  sleuth:
    sampler:
      probability: 1.0 # 采样率,生产环境可根据流量调整
  r2dbc:
    url: r2dbc:postgresql://localhost:5432/your_database_name
    username: your_db_username
    password: your_db_password

3. 自动埋点生效逻辑

Spring Cloud Sleuth会自动拦截R2DBC的ConnectionFactory,通过ConnectionFactoryWrapper生成带链路追踪标识的连接实例。无论你使用DatabaseClient、R2dbcEntityTemplate还是Spring Data R2DBC Repository执行数据库操作,都会自动生成对应Span并上报至Zipkin。

如果是自定义R2DBC操作(手动创建Connection),只需使用Spring容器中自动配置的ConnectionFactory实例,而非原始未包装的对象,即可实现链路埋点。

4. 验证埋点效果

启动Zipkin服务和你的应用,执行任意数据库操作后,访问Zipkin控制台(默认地址http://localhost:9411),即可看到带有r2dbc标签的Span,清晰展示数据库操作的链路追踪信息。


内容的提问来源于stack exchange,提问作者Archimedes Trajano

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 07:51:35