Для подключения к базе данных Монго, в наших приложениях без штормовых мы создали бы одноэлементный экземпляр класса Монго и разделить его по применению
Хотелось бы знать, что такое право способ реализовать объединение монго-соединений в рамках шторма?
Параметры, которые мы поставили:
У нас есть носик, который читается из базы данных Mongo. мы просто помещаем singleton Mongo class внутри носика и инициализируем его в открытом методе? - Но этот подход не позволил, если нужно, поделиться монгольским экземпляром.
хотел бы иметь некоторые указатели на правильный способ сделать это.Монго Пулы соединений для штормовых топологии
ответ
Пулы соединений в шторм немного сложнее, так как вы должны рассмотреть несколько вещей:
- Вы выполняющиеся в кластерной среде -> несколько машин нуждаются в своих собственных соединений
- Каждый шторм работник работает в отдельной JVM -> вероятно, что исполнители не работают в одной и той же работник ... который не означает, что нет совместного соединения
Так что, не беспокойтесь об этом слишком много. Продолжайте использовать экземпляр Singleton (как в ответе @ bridiver) вашего класса внутри ваших Spouts и Bolts, как обычно. Если у них будет одна и та же JVM, тогда они будут делиться одним и тем же пулом, и вам хорошо идти!
Что касается инициализации, вот что я делаю: информацию о конфигурации
- Пасса в носике/болт с помощью конструктора
- Инициализировать подключения в
open
(для сливов) илиprepare
(для болтов) методов - соединения не разделены между носиком и болтом
Отсутствие метода инициализации топологии может быть проблематичным. То, что мы сделали, это вызов метода на одноэлемент, который инициализирует пул соединений в методе подготовки (для получения конфигурации) любого используемого им болта. Мы используем синхронизированный метод с флагом, чтобы гарантировать, что фактическая инициализация выполняется только один раз. Существует небольшое ограничение производительности для вызова синхронизированного метода, но в большинстве случаев это не проблема.
Mongo.create_connection_pool(conf)
и метод
public static synchronized void create_connection_pool(Config conf) {
if (connected)
return;
else {
initialize connection...
connected = true;
}
}
- 1. JNDI поиск для Пулы соединений
- 2. Spring Пулы соединений конфигурации
- 3. Пулы соединения C3P0 и пулы соединений MySQL
- 4. Node.js - Пулы соединений
- 5. Пулы соединений осветление
- 6. Пулы соединений с Sailsjs
- 7. каротаж Пулы соединений для org.apache.commons.dbcp.BasicDataSource с пружиной
- 8. Создание Пулы соединений в Java
- 9. Содержит ли пулы соединений производительность?
- 10. CXF HTTP Пулы соединений CLOSE_WAIT
- 11. Измерительная латентность штормовых болтов
- 12. Тестирование штормовых болтов и носиков
- 13. Реализация нескольких штормовых топологий
- 14. Триггерные пулы соединений с sqlalchemy in flask
- 15. MongoDB Пулы соединений с C# драйвера
- 16. Как правильно использовать пулы соединений в redis?
- 17. ДБХП Tomcat Пулы соединений removeAbandoned не работает
- 18. Дополнительные подключения или дополнительные пулы соединений?
- 19. ASP.NET управления Войти и ADO.NET Пулы соединений
- 20. MySQL - постоянное подключение против Пулы соединений
- 21. Node JS - http.request() проблемы с Пулы соединений
- 22. .net Зеркальные базы данных и пулы соединений
- 23. Weblogic Пулы соединений с использованием Ecllipse
- 24. Java Oracle Пулы соединений - Closed Исключение соединения
- 25. Мультипроцессный pgbouncer пулы: из доступных соединений
- 26. Пулы соединений в Entity Framework 6
- 27. Oracle Пулы соединений занимает много времени для первого вызова
- 28. Пулы соединений/предел для SQL Server и Linq к SQL
- 29. ADO.NET Пулы соединений и последствия для AutoClose = True
- 30. Имеет ли смысл создавать пулы соединений для настольных приложений?
Я думаю, что Остина имеет в виду самого инициализации пула. В зависимости от реализации, которая может или не может быть обработана для вас автоматически. – bridiver
@bridiver Хорошо, я понимаю, что вы имеете в виду. Я обновил свой ответ, чтобы включить то, что я делаю с инициализацией. Сейчас я не использую синглтоны, каждый носик/болт управляет собственной связью. –
Каждый исполнитель Storm работает в отдельной JVM? это не рабочий, который работает в отдельной JVM. – Tanvi