本文目录#

常见问题#

  • R2DBC 驱动不支持 JPA 风格懒加载;
  • 连接池、事务语义与阻塞 JDBC 不同;
  • 批量操作和分页需要额外实现。

解决方案#

  • 选择成熟驱动(PostgreSQL、MySQL 官方 R2DBC);
  • 使用 ConnectionFactoryOptions 配置连接池(maxSizevalidationQuery);
  • 通过 DatabaseClient 或自定义 Repository 执行复杂 SQL;
  • 使用 Reactor Context 维护事务:@Transactional 在 R2DBC 中依赖 R2dbcTransactionManager

性能调优#

  • 对高频查询使用缓存或 Materialized View;
  • 监控 r2dbc.connection.creationreactor.netty.tcp.client.connections;
  • 结合 Micrometer + Prometheus 观察响应时间。

自检清单#

  • 是否评估 R2DBC 对事务与批量写入的限制?
  • 是否在业务代码中避免阻塞调用(block())?
  • 是否建立连接池监控与告警?

参考资料#


本作品系原创,采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,转载请注明出处。