Kry*_*tic 37 hibernate connection-pooling
我对Hibernate非常不熟悉,刚刚开始研究一个将它与MySQL数据库一起使用的Web应用程序.我注意到社区文档教程指出:
内置的Hibernate连接池绝不适合生产使用.它缺乏在任何体面的连接池上找到的几个功能.
有人可以详细说明吗?究竟是什么遗漏了,人们对"默认"问题有什么问题?在谷歌上搜索我在这里找到了一个网站,但它并没有真正解释问题,而是你应该使用的是什么.
jpk*_*ing 54
什么是连接池,为什么默认的连接池不适合生产?有人可以详细说明吗?
连接池是一种打开/准备/关闭连接的技术.连接池机制是一个软件(组件),您委派管理连接的功能.您的应用程序只需要连接,使用它,然后将其发送回池中.该组件负责打开N个连接,并在应用程序请求时为其准备好.如果连接过时,则池化机制将关闭它并重新打开一个新连接.这表示更好地使用连接,因为您不需要等待在实际执行代码期间建立连接,并且您不必担心过时的连接.
Hibernate并没有真正提供任何真正的连接池机制.它提供了一个内部连接管理器,这是非常基本的.原因很简单:几乎(如果不是全部)应用服务器(如JBoss AS)和Servlet容器(如Tomcat)默认提供连接池机制.因此,您的应用程序不必担心有关它的详细信息.它只是要求AS进行连接.
在我看来,只有两种情况需要担心连接池:
但根据我的经验,大多数使用"外部"连接池的人都是因为缺乏关于连接池的知识而缺乏对容器的了解.
当您处理独立应用程序时,有几个池管理器尚未由 Hibernate 维护。Hibernate 从不支持显式的。多年来,许多人来过又消失。最后真的很难判断哪个最好。最好亲自检查和比较这些项目以及这些项目的活跃程度。
以下是一些最近(2017 年)针对独立应用程序的池化建议(按字母顺序排列):
C3P0 http://www.mchange.com/projects/c3p0/
光https://github.com/brettwooldridge/HikariCP
| 归档时间: |
|
| 查看次数: |
39912 次 |
| 最近记录: |