Когда следует использовать master-slave в БД
Python
Senior
Без компании
Когда следует использовать master-slave в БД
Ответы
Master-slave репликация в БД применяется для:
- **Масштабирования чтения** — slave-узлы обрабатывают read-запросы, разгружая master.
- **Отказоустойчивости** — при падении master можно переключиться на slave.
- **Резервного копирования** — slave может использоваться для бэкапов без нагрузки на master.
**Ограничения:**
- Запись всегда идет только в master (риск single point of failure).
- Репликация асинхронна — возможны задержки данных на slave.
**Пример:** Чтение из slave в Django:
```
DATABASES = {
'default': { # master
'ENGINE': 'django.db.backends.postgresql',
'HOST': 'master.db.example.com',
},
'replica': { # slave
'ENGINE': 'django.db.backends.postgresql',
'HOST': 'slave.db.example.com',
}
}
# Ручное указание реплики для чтения
users = User.objects.using('replica').filter(is_active=True)
```
Альтернативы: master-master (но сложнее в поддержке) или современные решения типа PostgreSQL с логической репликацией.