В чем разница между шардированием и репликацией в MongoDB
Python
Senior
Без компании
В чем разница между шардированием и репликацией в MongoDB
Ответы
Шардирование (sharding) и репликация (replication) в MongoDB решают разные задачи:
**Репликация** — это механизм дублирования данных на несколько серверов (реплик). Обеспечивает отказоустойчивость и высокую доступность. Включает один primary-узел (для записи) и несколько secondary-узлов (для чтения).
**Шардирование** — это горизонтальное разделение данных между серверами (шардами) для распределения нагрузки. Каждый шард содержит часть данных. Позволяет масштабировать запись и чтение.
Пример репликации:
```
// Конфигурация репликасета
rs.initiate({
_id: "rs0",
members: [
{ _id: 0, host: "mongo1:27017" },
{ _id: 1, host: "mongo2:27017" },
{ _id: 2, host: "mongo3:27017" }
]
})
```
Пример шардирования:
```
// Включение шардинга для коллекции
sh.enableSharding("mydb")
sh.shardCollection("mydb.mycol", { "user_id": 1 })
```
**Итог:**
- Репликация — резервирование данных (вертикальное масштабирование).
- Шардирование — распределение данных (горизонтальное масштабирование).