java - R2dbc 不能使用 tcp 处理 h2 数据库
问题描述
我尝试使用 docker 容器 oscarfonts/h2 将 h2 与 r2dbc 一起使用。默认情况下,使用这个容器时,我们必须使用 tcp 协议,
当我尝试将它与 r2dbc 一起使用时。我收到以下明确的错误消息:
由于类 java.lang.IllegalArgumentException 重试获取数据库连接:不支持协议选项 tcp(文件、内存)
文档 r2dbc h2 说它应该与 tcp 协议一起使用。可以?
相应地使用 spring boot 2.3.0.RELEASE 和 r2dbc 版本。
解决方案
R2DBC H2 是 H2 数据库的一个小型包装器。这意味着整个基础设施使用与 JDBC 相同的 H2 实现,这都是阻塞的。
因此,在使用 R2DBC 时不应通过 TCP 使用 H2,而应使用具有适当非阻塞 I/O 实现的不同数据库(MySQL、MariaDB、Postgres、SQL Server)。
推荐阅读
- ssl - 存储在 SSL 配置 XML 中加密的 keyStorePassword 值
- react-native - 开玩笑无法编译流程(react-native)
- flutter - ScrollablePositionedList 初始滚动偏移量
- iframe - 如何在 youtube 直播视频 iframe 嵌入代码中仅显示质量选项并隐藏其他选项
- c++ - 类设置器函数的问题。类设置器函数未正确分配值
- python-3.x - 如何通过 AndroidViewClient 滚动 android 屏幕
- tableau-api - 如何在 Tableau 中的每个类别中选择最高值
- javascript - 如何为firebase(React js)中的每条传入消息发送通知?
- c# - 替换字符串中的重叠匹配项(正则表达式或字符串操作)
- selenium - 如何使用时间睡眠使硒输出一致