3

我在一个项目中使用带有 Java 的播放框架。我们有很多并发用户,所以我们决定使用 play 重写整个项目,以便从它的非阻塞特性中受益,以支持更多的并发用户。该项目背后的数据库是 Oracle,正如您所知,所有 JDBC 驱动程序都使用阻塞 IO,但ReactivMongo除外。我进行了很多搜索,得出的结论是,目前没有解决办法使 Oracle JDBC 驱动程序非阻塞。然而,Oracle 在其原生 OCI 驱动程序中支持非阻塞调用(不幸的是,它基于轮询而不是回调或中断)甚至没有实验项目!这证明还没有感觉到需要,它一定是有原因的。当然,我发现以下链接是一个mysql 异步连接器对于 Java,但对于 Oracle 则没有。

这让我想到了我的问题。当我有一个用于 Oracle 的阻塞 JDBC 驱动程序时,使用 Play 框架真的有好处吗?

4

1 回答 1

0

使用后台线程进行 JDBC 连接,并通过消息与该线程通信。

老实说,没有人在非阻塞模式下使用 OCI。它有各种未记录的限制。一些 OCI 调用会意外地将库切换回阻塞模式。另一方面,在多线程环境中使用 OCI 是相当安全的。

于 2016-05-02T08:44:13.167 回答