Я пытаюсь найти наилучший подход к совместному использованию одного и того же пула соединений между участниками с работниками кластера. У меня есть следующая структура:
Главный актер -> Рабочие актеры (может быть до 100 и более) -> MongoDB
Между воркерами и MongoDB хочу поставить reactivemongo, однако не уверен, как именно обеспечить совместное использование пула соединений между всеми акторами.
Согласно документации реактивного монго:
Экземпляр MongoDriver управляет системой акторов; соединение управляет пулом соединений. Как правило, MongoDriver или создание MongoConnection никогда не создаются более одного раза. Вы можете предоставить список из одного или нескольких серверов; драйвер угадает, является ли это автономным сервером или конфигурацией набора реплик. Даже с одним узлом-репликой драйвер будет проверять наличие других узлов и добавлять их автоматически.
Должен ли я просто создать его в главном актере, а затем связать с каждым сообщением? Итак, это будет в Мастере актера:
val driver = new MongoDriver
val connection = driver.connection(List("localhost"))
А затем я передаю подключение к акторам в сообщении. Или я должен запросить соединение в каждом рабочем актере и передать только драйвер в сообщении?
Любая помощь очень ценится. Спасибо.