Mongo DB - разница между автономным набором реплик и 1 узлом - PullRequest
2 голосов
/ 28 мая 2019

Мне нужно было использовать транзакции БД Mongo, и недавно я понял, что транзакции не работают в автономном режиме Mongo, а только для наборов реплик ( БД Mongo с C # - документ добавляется независимо от транзакции ).
Кроме того, я прочитал, что автономный режим не рекомендуется для производства.

Итак, я обнаружил, что достаточно просто указать имя набора реплик в mongod.cfg, чтобы запустить БД Mongo как набор реплик вместоstandalone.
После изменения этого транзакции Mongo начали работать.
Тем не менее, использование его в качестве набора реплик кажется немного странным, хотя на самом деле я не использую функции репликации и хочу убедиться, чтоиспользуя правильную конфигурацию.

Итак, мои вопросы:

  1. Есть ли какие-либо проблемы / недостатки при запуске Mongo в качестве набора реплик из 1 узла, если предположить, что мне действительно не нуженрепликация, балансировка нагрузки или любая другая масштабируемая функциональность?(как я уже сказал, он нужен для разрешения транзакций)
  2. Каковы функциональные различия и различия в производительности, если таковые имеются, между работой в автономном режиме и работой в качестве набора реплик из 1 узла?
  3. I 'мы читали, что автономный режим не рекомендуется для производства, хотя, похоже, это самая базовая конфигурация.Я понимаю, что эта конфигурация не используется в большинстве сценариев, но иногда вы можете использовать ее в качестве стандартной БД на локальной машине.Так почему же автономный режим не рекомендуется?Это недостаточно стабильно или по другим причинам?

1 Ответ

2 голосов
/ 30 мая 2019

Есть ли какие-либо проблемы / недостатки при запуске Mongo в качестве набора реплик из 1 узла, если предположить, что мне действительно не нужна репликация, балансировка нагрузки или другие масштабируемые функции?

У вас нет высокой доступности, обеспечиваемой правильным набором реплик.Таким образом, это не рекомендуется для производственного развертывания.Это нормально для разработки.

Обратите внимание, что функция набора реплик главным образом заключается в высокой доступности, а не в масштабировании.

Каковы различия в функциональности и производительности, если таковые имеются, между работающимикак автономный или как набор реплик с 1 узлом?

Набор реплик с одним узлом будет иметь оплог.Это означает, что вы будете использовать больше дискового пространства для хранения оплога, а также любая операция вставки / обновления будет записана в оплог (усиление записи).

Так почему же автономный режим нерекомендуемые?Не достаточно ли это стабильно или по другим причинам?

MongoDB в рабочей среде был разработан с учетом развертывания набора реплик для:

  • Высокая доступность перед лицом узласбои
  • Текущее обслуживание / обновление без простоев
  • Возможность масштабирования операций чтения
  • Возможность иметь реплику данных в узле специального назначения, который не является частьюузлы высокой доступности

Короче говоря, MongoDB была разработана как отказоустойчивая распределенная база данных (масштабируется горизонтально) вместо типичной монолитной базы данных SQL (масштабируется вертикально).Идея состоит в том, что, если вы потеряете один узел вашего набора реплик, другие немедленно вступят во владение.В большинстве случаев ваше приложение даже не знает о сбое на стороне базы данных.Напротив, сбой в монолитном сервере баз данных немедленно нарушит работу вашего приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...