Выравнивание нагрузки MongoDB

"Сервис Обработки Журнала закона" был установлен на автоматический, но не стартовый. Измененный на отложенный запускаются и 2 перезапуска. Удаленные рабочие станции теперь показывают в сервере MSSQL. Разрешение DOMAINNAME\MachineName$ не нужно на базе данных MSSQL, поскольку ActLogProcessor обычно работает на той же машине как сервер MSSQL.

1
задан 29 January 2014 в 19:06
2 ответа

На практике вам не потребуется больше экземпляров маршрутизатора MongoDB, пока у вас не будет МНОГО серверов (каждый из которых выполняет МНОГО трафика) . Предполагая, что вы дошли до этого момента, хотя проблему на самом деле решить намного проще, чем вы думаете.

Расширяя сказанное MrKurt, вы обычно делите свои серверы Tomcat на группы, а затем настраиваете каждый сервер Tomcat группа с набором роутеров MongoDB для аварийного переключения.

Итак, если у вас 30 серверов Tomcat, вы можете разделить их на 3 группы Tomcat по 10.
Затем настройте маршрутизатор Mongo для каждой группы и настройте что-то вроде:

Tomcat Group 1 -> Mongo 1, Mongo 2, Mongo 3
Tomcat Group 2 -> Mongo 2, Mongo 3 , Mongo 1
Tomcat Group 3 -> Mongo 3, Mongo 1, Mongo 2

  • Каждая группа серверов Tomcat указывает на другой маршрутизатор Mongo
    Таким образом, вы не избиваете один фронт - заканчивайте со всеми вашими просьбами.

  • Если маршрутизатор Mongo по умолчанию для группы не работает, вы переключаетесь на следующий маршрутизатор
    Это обрабатывается драйвером подключения MongoDB.
    Обратите внимание на смещение цепочки аварийного переключения, как показано выше. Это предотвращает сброс чрезмерной нагрузки на какой-либо один сервер в условиях единичной ошибки.

  • Если вы потеряете один экземпляр Tomcat, вы не «тратите впустую» маршрутизатор Mongo.
    Вам придется потерять все экземпляры Tomcat в группа, чтобы один из маршрутизаторов Mongo перестал работать (и даже в этом случае он не будет «потрачен впустую»: это все еще избыточная емкость в случае отказа другого экземпляра маршрутизатора Mongo.

3
ответ дан 3 December 2019 в 17:08

Большинство драйверов Mongo в наши дни могут обрабатывать несколько Mongo в строке подключения, драйвер Java реализовал это начиная с 2.9.0: https://jira.mongodb.org/browse/ JAVA-381

Это только для аварийного переключения, но не для балансировки нагрузки. Обычно вам не нужно балансировать нагрузку между Mongos, узкие места обычно находятся на серверных шардах в хорошо оптимизированной настройке.

2
ответ дан 3 December 2019 в 17:08

Теги

Похожие вопросы