如何使用MySQL X DevAPI的Java连接池?

如何使用MySQL X DevAPI的Java连接池?,java,mysql,spring,asynchronous,reactive-programming,Java,Mysql,Spring,Asynchronous,Reactive Programming,我一直在探索下一个版本的Spring对非阻塞异步反应式web应用的支持。令我震惊的是,大多数应用程序都倾向于与关系数据库交互。因此,只要JDBC是一个同步阻塞API,并且所有主要的关系数据库甚至都缺乏专有的异步驱动程序,那么整个反应式的东西可能仍然领先于它的时代 然后,几乎是偶然地,我发现最新版本的MySQL支持一个名为“”的东西,它包含在当前的MySQL JDBC驱动程序中(尽管它是JDBC规范之外的额外类) 我还没有听说过任何关于X DevAPI的宣传,而且几乎没有文档强调将MongoDB替

我一直在探索下一个版本的Spring对非阻塞异步反应式web应用的支持。令我震惊的是,大多数应用程序都倾向于与关系数据库交互。因此,只要JDBC是一个同步阻塞API,并且所有主要的关系数据库甚至都缺乏专有的异步驱动程序,那么整个反应式的东西可能仍然领先于它的时代

然后,几乎是偶然地,我发现最新版本的MySQL支持一个名为“”的东西,它包含在当前的MySQL JDBC驱动程序中(尽管它是JDBC规范之外的额外类)

我还没有听说过任何关于X DevAPI的宣传,而且几乎没有文档强调将MongoDB替换为文档存储的用例。但是,该库还包括以非阻塞异步方式访问MySQL关系数据库的能力

不幸的是,仅有的文档示例是基本的“Hello World”用例。一个
staticvoidmain
方法从头开始建立一个新的MySQL X会话,并在最后关闭它

我很好奇这个新的API是否已经准备好进行更实际的使用。具体来说,是否支持连接池?或者通过第三方库,或者通过一些没有很好的文档记录的东西原生到MySQL库

或者我可能在这里遗漏了一些基本的东西,而连接池根本就没有必要,因为X DevAPI在封面下多路复用或其他什么?

根据这一点,将有两种类型的会话:

  • X会话。这是一种较好的会话类型,因为根据上下文,它是无状态的。目前只能连接到mysql的一个节点,但对于mysql 8版本,预计会:
尽管MySQL X的当前版本支持连接到单个节点的XSession,但未来版本可以将其扩展到多个节点。使用XSession的应用程序准备进行缩放:更改一些连接参数,并完成代码更改

  • 点头致意。由于XSession只提供sql函数的一个子集,因此应该有一种执行原始sql的方法。SQL是状态完整的,NodeSession也是
使用NodeSession的应用程序建立到各个节点的连接。要使用NodeSession扩展应用程序,您必须尽可能使用XSession替换NodeSession

X协议需要安装X插件,以便使用Java中的X DevApi检查docker的使用情况