Должен ли я хранить реплики и серверы конфигурации на отдельных серверах? Или один репликас и один сервер конфигурации на одном сервере? Могу ли я иметь все репликации на одном сервере и всех серверах конфигурации на другом сервере? (Означает ли это, что цель оштрафования?)Хостинг Replicaset и Config серверов MongoDB на других серверах?
ответ
Целью оштрафования является распределение нагрузки на нескольких серверах. Целью репликации является (в основном) избыточность, позволяя одному серверу заменить место другого, когда этот сервер отключается по какой-либо причине. Очевидно, что в любом случае нет смысла запускать несколько экземпляров на одном сервере. Так что да, это победит цель осколки.
Однако, если у вас есть только два сервера и вам нужно выбирать между репликацией и очертаниями, вы можете получить лучшее из обоих миров, создав два осколка, где каждый осколок имеет вторичное значение, которое выполняется на сервере первичной части другого осколок. Таким образом, вы улучшаете производительность, когда все в порядке, но не теряйте доступ к половине ваших данных, когда один сервер опускается.
Относительно конфигурационных серверов: MongoDB recommends to make them a separate replica-set which runs on separate servers. Но когда вы работаете с бюджетом, технически возможно поставить этот набор реплик на одно и то же оборудование, которое запускает фактическую базу данных. Конфигурационные серверы требуются только в том случае, когда процесс mongos (перезапуск) запускается или когда происходит миграция фрагментов и в течение оставшегося времени остается относительно бездействующим. К сожалению, миграция кусков также является фазой, в которой задействованные осколки очень заняты, поэтому запуск конфигурационных серверов на одном и том же аппаратном обеспечении еще больше ухудшит производительность при миграции пакетов.
Это вопрос для администраторов, а не для разработчиков программного обеспечения. Я назначил ваш вопрос для перехода на https://dba.stackexchange.com – Philipp