Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Домашнее задание к занятию "Репликация и масштабирование. Часть 1" - Фефмлатьев Антон


Задание 1

В режиме master-slave все операции записи идут только на один узел‑мастер, а остальные узлы служат лишь репликами для чтения; в master-master несколько узлов могут принимать записи, и данные реплицируются между ними взаимно.

Master-slave

  • Есть один ведущий сервер (master), на который отправляются все операции изменения данных: INSERT, UPDATE, DELETE.

  • Один или несколько ведомых серверов (slaves/replicas) получают изменения с мастера и обычно обслуживают только запросы на чтение (SELECT).

  • Схема проще в настройке и сопровождении, легче понимать, где «истина» — на мастере, а реплики лишь его копии.

  • Хорошо масштабирует чтение: можно добавить ещё реплик, чтобы разгрузить мастер по SELECT, но запись масштабируется слабо, потому что пишем всё равно в один узел.

  • При отказе мастера нужно вручную или автоматически «повысить» одну из реплик до мастера и перенастроить остальные узлы Master-master

  • Несколько узлов одновременно играют роль мастеров, каждый может принимать операции записи и чтения.

  • Изменения, сделанные на одном мастере, реплицируются на другие мастера, часто в обе стороны (актив‑актив).

  • Даёт лучшую доступность: при падении одного мастера приложения могут продолжить работу с другим без сложного переключения ролей.

  • Позволяет масштабировать не только чтение, но и запись (нагрузку по INSERT/UPDATE можно распределить по мастерам), но требует аккуратного разделения данных или продуманной стратегии маршрутизации запросов.

Основные отличия

Точка записи: master-slave — один узел для записи; все остальные в основном для чтения. master-master — несколько узлов для записи, каждый из них источник истины для своих операций. Конфликты данных:

  • В master-slave конфликтов почти нет: все изменения идут из одного места.
  • В master-master возможны конфликты (например, параллельное изменение одной и той же строки на разных мастерах), поэтому нужны механизмы их обнаружения и разрешения (правило «последняя запись побеждает», приоритет мастера и т.п.). Сложность:
  • master-slave проще настроить, мониторить и объяснить, чаще используется как «чтение с реплик + резерв».
  • master-master сложнее в конфигурации и логике приложения, но даёт более высокую отказоустойчивость и гибкость при масштабировании записи

Задание 2

Скриншот1

Скриншот 2

Скриншот 3


About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors