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

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

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

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

我们一直在通过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。

希望有所帮助!