gpt4 book ai didi

java - 你如何为 MySQL X DevAPI 使用 Java 连接池?

转载 作者:行者123 更新时间:2023-11-29 03:23:25 25 4
gpt4 key购买 nike

我一直在探索对下一个 Spring 版本中即将推出的非阻塞异步响应式 Web 应用程序的支持。让我印象深刻的是,大多数应用程序都倾向于与关系数据库交互。因此,只要 JDBC 是一个同步阻塞 API,并且所有主要的关系数据库仍然缺乏甚至专有的异步驱动程序,那么整个响应式(Reactive)事物可能仍然超前于它的时代。

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

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

不幸的是,唯一的文档示例是基本的“Hello World”用例。 static void main 方法从头开始建立一个新的 MySQL X session ,并在最后关闭它。

我很好奇这个新 API 是否已准备好用于更实际的用途。具体来说,是否支持连接池?是通过 3rd 方库,还是通过没有很好记录的东西原生于 MySQL 库?

或者我可能在这里遗漏了一些基本的东西,并且根本不需要连接池,因为 X DevAPI 在幕后多路复用什么的?

最佳答案

根据 documentation将有两种类型的 session :

  • X session 。这是首选的 session 类型,因为根据 dev blog post 它是无状态的.目前它只能连接到 mysql 的一个节点,但对于 MySQL 8 版本,它预计为 work with multiple nodes :

Although the current version of MySQL X supports XSessions that connect to a single node, future versions could extend this to cover multiple nodes. An application using XSession is prepared to be scaled: change some connect parameters and be done with code changes.

  • 节点 session 。由于 XSession 仅提供 sql 函数的一个子集,因此应该有一种方法来执行原始 sql。 SQL 是有状态的,NodeSession 也是。

An application using NodeSession establishes connections to individual nodes. To scale an application using NodeSession you would have to replace the use of NodeSession with XSession whenever possible.

X 协议(protocol)需要安装 X 插件,因此您可以检查 my sample repo在 Java 中与 X DevApi 一起使用 docker。

关于java - 你如何为 MySQL X DevAPI 使用 Java 连接池?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40192914/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com