English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Учебник MongoDB базового уровня

Учебник MongoDB высокого уровня

Шардинг в MongoDB

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

Почему нужно использовать шarding?

  • В процессе репликации все записи направляются на основной узел

  • Запросы, чувствительные к задержке, все еще направляются на основной узел

  • Ограничение одного репликационного набора составляет 12 узлов

  • Когда набор данных очень большой, память не может быть достаточно большой

  • Локальный диск не достаточно большой

  • Вертикальное масштабирование слишком дорогое

Шарды в MongoDB

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

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

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

  • Конфигурационные серверы−Конфигурационные серверы хранят метаданные кластера. Данные включают карту ассоциации между набором данных кластера и шардами. Запросные маршрутизаторы используют эти метаданные для направления операций к специфическим шартам. В производственной среде шардовый кластер имеет именно три конфигурационных сервера.

  • Запросные маршрутизаторы−Запросные маршрутизаторы по сути являются экземплярами mongo, с которыми можно интерфейсировать клиентские приложения и напрямую направлять операции к соответствующим шардам. Запросные маршрутизаторы обрабатывают операции, определяют их местоположение в шардах и затем возвращают результаты клиенту. Шардовый кластер может содержать多个 запросных маршрутизаторов для разделения нагрузки запросов клиентов. Клиенты отправляют запросы к запросному маршрутизатору. Обычно, шардовый кластер имеет множество запросных маршрутизаторов.