繁体   English   中英

Spring R2DBC 不支持多主机/故障转移

[英]Spring R2DBC doesn't support multiple host/failover

我在我的项目中使用 spring r2dbc 并试图让它与多个主机/故障转移 postgres 拓扑一起工作; 换句话说,db url 是这样的: r2dbc:postgresql:failover://host1,host2,host3:port/

我正在使用 2.7.5 版本的 spring 引导,并得到:

  • r2dbc-pool-0.9.2.RELEASE
  • r2dbc-spi-0.9.1.RELEASE
  • r2dbc-postgresql-0.9.2.RELEASE

作为 spring 启动的一部分。
据我了解,这组 r2dbc 库尚不支持故障转移,因为我看到错误指出无法解析此类 url。

我尝试将r2dbc-postgresql-0.9.2.RELEASE升级到1.0.0.RC1但出现以下错误:

class java.lang.Long cannot be cast to class java.lang.Integer
(java.lang.Long and java.lang.Integer are in module java.base of loader 'bootstrap')
java.lang.ClassCastException: class java.lang.Long cannot be cast to class java.lang.Integer
(java.lang.Long and java.lang.Integer are in module java.base of loader 'bootstrap')

作为执行简单delete query DELETE FROM my_table WHERE boolean_flag = $1

这间接说明 r2dbc 库中存在一些兼容性问题。 如果有这些库的工作集可以在我的情况下工作或者正在等待新的 spring 版本是我唯一的选择,谁能指导我?

从 Spring 引导版本 2.7.5(据我所知低于 3.0.0 的任何版本),在您的项目中没有使用 postgres/spring boot/r2dbc/多主机故障转移组合的有效选项。 只是暂时不支持。

不过好在即将发布的Spring boot 3.0.0版本应该会支持。

引用 r2dbc gitter 的活跃成员 Mark Paluch的话:

Spring Framework 6/Spring Data R2DBC 3.0 支持 R2DBC 1.0,因为 R2DBC 0.9 和 1.0 之间存在二进制兼容性更改

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM