使用Tomcat的MongoDB Java驱动程序数据库连接池

ano*_*non 10 java tomcat mongodb tomcat7

根据MongoDB Java驱动程序文档,Mongo对象可以神奇地处理数据库连接池.

这是否意味着创建单个对象的实例是安全的,该对象连接到将在Tomcat启动时运行的servlet中的MongoDB数据库,而不用担心通过context.xml在Tomcat中配置数据库连接池?

这是考虑它的正确方法吗?我是否误解了Tomcat /数据库连接池的一些基本概念?

Cia*_*her 9

我们一直在通过CFMongoDB项目使用Java驱动程序,我们按照您的描述使用它,但是在ColdFusion应用程序中而不是在Java中.同样的想法:创建了一个对象,我们重用它,该对象维护与Mongo服务器的一个连接.

您可以创建一个Mongo Java实例,它将维护一个内部连接池(默认大小为10) - 对您来说它是隐藏的,您无需担心它.Mongo Java文档推荐这个:

http://www.mongodb.org/display/DOCS/Java+Driver+Concurrency

我们现在已经在生产中运行,并且没有任何问题.多个Web请求线程使用相同的Mongo实例,Mongo使用它的内部池(我们正在进行日志记录以便它可以写得非常快!)来快速处理这个问题.

值得记住调用close()任何已完成的实例 - 这将阻止连接在Mongo服务器上随着时间的推移而消耗殆尽:

http://api.mongodb.org/java/2.5-pre-/com/mongodb/Mongo.html#close()

总而言之,不要担心配置Tomcat.

希望有所帮助!