Учебники

MongoDB — Sharding

Sharding — это процесс хранения записей данных на нескольких машинах, и это подход MongoDB к удовлетворению требований роста данных. Поскольку размер данных увеличивается, одной машины может быть недостаточно для хранения данных или обеспечения приемлемой скорости чтения и записи. Sharding решает проблему с горизонтальным масштабированием. С помощью шардинга вы добавляете больше машин для поддержки роста данных и требований операций чтения и записи.

Почему шардинг?

  • При репликации все записи идут на главный узел
  • Запросы, чувствительные к задержке, по-прежнему отправляются мастеру
  • Один набор реплик имеет ограничение в 12 узлов
  • Память не может быть достаточно большой, когда активный набор данных большой
  • Локальный диск недостаточно большой
  • Вертикальное масштабирование слишком дорого

Шардинг в MongoDB

На следующей диаграмме показано сегментирование в MongoDB с использованием сегментированного кластера.

MongoDB Sharding

На следующей диаграмме есть три основных компонента:

Осколки — Осколки используются для хранения данных. Они обеспечивают высокую доступность и согласованность данных. В производственной среде каждый осколок представляет собой отдельный набор реплик.

Config Servers — серверы Config хранят метаданные кластера. Эти данные содержат сопоставление набора данных кластера с шардами. Маршрутизатор запросов использует эти метаданные для нацеливания операций на определенные сегменты. В производственной среде сегментированные кластеры имеют ровно 3 сервера конфигурации.

Query RoutersQuery Routers — это, в основном, экземпляры mongo, взаимодействующие с клиентскими приложениями и направляющие операции в соответствующий сегмент. Маршрутизатор запросов обрабатывает и направляет операции на сегменты, а затем возвращает результаты клиентам. Кластерный кластер может содержать более одного маршрутизатора запросов для разделения нагрузки клиентских запросов. Клиент отправляет запросы одному маршрутизатору запросов. Как правило, у сегментированного кластера есть много маршрутизаторов запросов.