我正在尝试比较一些java连接池库,但到目前为止我还没有找到任何令人满意的答案。现在C3P0正在我的应用程序中使用,但我想建议其他连接池库,但我没有任何可靠的信息来迁移到任何其他连接池机制。我读到Oracle的UCP正在使用连接收集机制,但我不知道它有多有用,也不知道其他提供商是否也提供了收集机制。可以包括哪些点来比较各种连接池机制。谁能告诉我Oracle UCP, C3P0和HikariCP哪个更好?有没有比以上3种更好的机制?
12.2.0.1版本的UCP(在这里下载)有一个非阻塞架构,在JavaOne的一个会议上解释过,这使得它具有很强的可扩展性。您可以有数千个线程共享同一个UCP池,并且不会在池中遇到任何可伸缩性问题(当然您可能会耗尽连接,但那是另一个问题)。
恕我直言,连接收集是反模式的。通常,最好在使用完资源后尽快释放资源,特别是db连接(想想锁和并发用户)。如果你没有"特定"的oracle或web服务器的限制,HikariCP是一个不错的选择。为什么它是好的?查看他们的网站和wiki