Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Оштучні скупчення в mongodb


Оштучні скупчення в mongodb


Монгодб Шард -кластери забезпечують потужний метод горизонтально масштабування великих наборів даних, розподіляючи дані по декількох серверах або осколках, що дозволяє ефективно обробляти базу даних та велику кількість даних.

Монгодб -шкідливий кластер складається в основному з трьох основних компонентів: осколки, конфігураційних серверів та маршрутизаторів монгосів. Кожен осколок - це набір репліки, що містить підмножину даних кластера. Набори репліки забезпечують надмірність даних та високу доступність даних про кожен осколок. Сервери конфігураційних серверів зберігають метадані та деталі конфігурації про кластер, включаючи відображення шматочків даних до осколків. Mongos виступає як служба маршрутизації, яка взаємодіє з клієнтськими програмами та спрямовує запити на відповідні осколки на основі ключа осколка.

Шардування в MongoDB призначений для того, щоб забезпечити горизонтальне масштабування шляхом розподілу даних через осколки за допомогою обраного ключа. Цей розділ створює шматки даних, розподілені рівномірно серед осколків, що дозволяє MongoDB розповсюджувати навантаження зчитування та записи. Запити, що включають ключ осколки або префікси складеного ключа, можуть бути ефективно направлені Mongos до конкретних осколків, зменшуючи накладні витрати та покращуючи продуктивність. Якщо запит не включає ключ осколки, Mongos може транслювати запит на всі осколки, що є менш ефективним.

Шампили в кластері масштабовані; Додаткові осколки можуть бути динамічно додані для пристосування зростання обсягу даних або навантаження на запит без простою. Кожен осколок - це репліка для забезпечення допуску несправностей, а загальна конструкція кластерів підтримує високу доступність. MongoDB автоматично врівноважує дані по осколках, перерозподіляючи шматки даних, як потрібно для підтримки рівномірного навантаження серед осколків.

Сервери конфігурації відіграють вирішальну роль у управлінні метаданими кластера, зберігаючи інформацію про структуру кластера та розподіл даних. Сервери конфігурації повинні бути розгорнуті як набір репліки для високої доступності. Вони синхронізуються з маршрутизаторами Mongos, які кешують метадані локально для ефективного маршруту. Послідовний стан метаданих на конфігураційних серверах є важливим для правильної роботи осколеного кластера.

Екземпляри Mongos виступають як маршрутизатори запитів, які забезпечують інтерфейс між клієнтськими програмами та скупченим кластером. Вони абстрагують складність осколеного середовища шляхом операцій маршрутизації до правильних осколків на основі метаданих з конфігураційних серверів. Кілька екземплярів Mongos можуть бути розгорнуті для балансування навантаження та високої доступності, і їх слід розмістити близько до серверів додатків для зменшення затримки мережі.

Найважливішим аспектом осколених кластерів є вибір Shard Key. Ключ Shard регулює те, як розділені дані, безпосередньо впливають на продуктивність кластера та розподіл даних. Вибір відповідного ключа SHARD вимагає аналізу навантаження, щоб забезпечити рівномірний розподіл операцій зчитування та запису через осколки. Після того, як створена суть колекція за допомогою певного ключа, зміна ключа Shard є складною і, як правило, передбачає трудомісткий процес міграції даних. Отже, важливим є ретельний вибір ключового осколка.

У виробничих умовах хороші практики для осколкових кластерів включають розгортання конфігураційних серверів та осколків як наборів репліки в декількох центрах обробки даних, щоб забезпечити толерантність до несправностей та високу доступність. Кожен осколок рекомендується бути набором реплік на три вузла. Кластери потребують щонайменше двох осколків, хоча одноошути черепичні скупчення можуть використовуватися, якщо в майбутньому планується осколки.

Sharding покращує ємність бази даних за рахунок збільшення меж зберігання за допомогою розподіленого зберігання даних по осколках. Це також покращує продуктивність, розповсюджуючи зчитування та записи, що дозволяє обробляти навантаження на більш високу пропускну здатність. Крім того, осколковий кластер може підтримувати часткову доступність під час відключення осколок; Незважаючи на те, що дані про постраждалі осколки можуть бути недоступними, кластер продовжує обслуговувати запити на наявні осколки.

У осколеному кластері дані поділяються на шматки в межах діапазону, визначеного ключем. MongoDB налаштовує розміри шматки, які впливають на те, як дані розділені та збалансовані по осколках. Процеси міграції та відновлення збалансування автоматично обробляються кластером для підтримки навіть розподілу даних та оптимальних показників. Це автоматичне врівноваження гарантує, що жодна жодна осколка не стає вузькою продуктивністю або точкою для зберігання.

Шаргетні кластери також підтримують зони (орієнтовані на теги), що дозволяє групувати дані та обмежувати конкретні осколки на основі зони асоціацій. Ця функція дозволяє отримати більш контрольовану місцевість даних і корисна для вимог дотримання або географічного розподілу. Зонам присвоюється діапазони ключових значень осколки та пов'язані з осколками для більш детально контролювати розміщення даних.

Обмеження та експлуатаційні міркування включають складність управління декількома осколками та збільшення експлуатаційних накладних витрат. Затримка мережі між компонентами та накладними метаданими конфігураційного сервера та маршрутизацією може вплинути на продуктивність, якщо не належним чином керується. Розгортання декількох маршрутизаторів Mongos та конфігураційних серверів та моніторинг їх здоров'я є важливим для уникнення зниження продуктивності. Кількість екземплярів Mongos повинна бути збалансована, оскільки надмірні екземпляри Mongos можуть призвести до частих спілкування з конфігураційними серверами та можливим впливом на продуктивність кластера.

Деякі обмеження застосовуються в розміщених або керованих версіях Shard -Shard -кластерів, таких як Azure Cosmos DB для API MongoDB, включаючи кількість осколків, зберігання та обмеження ресурсів на осколок або кластер. Ці обмеження, що стосуються платформи, різняться і можуть бути вищими з преміум-рівнями.

В цілому, Shard -кластери MongoDB забезпечують надійну основу для масштабування сучасних додатків з великими зростаючими наборами даних шляхом розподілу даних та операцій прозоро через кілька вузлів, забезпечуючи ефективність, толерантність до несправностей та масштабованість за допомогою інтелектуального розподілу даних та розгортання репліки.