MongoDB Java Driver пул соединений с базой данных с Tomcat - PullRequest
10 голосов
/ 10 января 2011

Согласно документации драйвера MongoDB для Java, пул соединений с базой данных магически обрабатывается объектом Mongo.

Означает ли это, что безопасно создавать экземпляр одноэлементного объекта, который подключается к базе данных MongoDB в сервлете, который будет запускаться при запуске Tomcat и не беспокоиться о настройке пула соединений с базой данных в Tomcat через context.xml?

Это правильный способ думать об этом? Я неправильно понимаю основную концепцию пула соединений Tomcat / базы данных в целом?

1 Ответ

9 голосов
/ 10 января 2011

Мы использовали драйверы Java через проект CFMongoDB , и мы используем его, как вы описали, но в приложении ColdFusion, а не в Java.Идея та же: создается один объект, и мы используем его повторно, и этот объект поддерживает одно соединение с сервером Mongo.

Вы можете создать один экземпляр Java Mongo, и он будет поддерживать внутренний пул соединений (размер по умолчанию 10) - для вас он скрыт, и вам не нужно об этом беспокоиться.Документы Mongo Java рекомендуют это:

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

Сейчас он запущен в производство, и проблем не было.Несколько потоков веб-запросов используют один и тот же экземпляр Mongo, и Mongo достаточно быстр, чтобы справиться с этим, используя свой внутренний пул (мы ведем журналирование, поэтому он может писать очень быстро!).

Стоит не забывать вызывать close() во всех случаях, когда вы закончили - это прекратит использовать соединения на сервере Mongo с течением времени:

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

Итак, в общем, не беспокойтесь о настройке Tomcat.

Надеюсь, это поможет!

...