Multi Master против одноранговых архитектур БД
Насколько я понимаю, в архитектуре БД с несколькими мастерами:
- У вас есть 2+ сервера БД, оба действуют как мастера чтения / записи; а также
- Это либо до некоторого типа балансировщика нагрузки для балансировки операций между этими несколькими мастерами; а также
- Всякий раз, когда сервер получает чтение, он выбирает и возвращает запрашиваемые данные локально; а также
- Всякий раз, когда сервер получает запись, он записывает + коммиты локально, но затем реплицирует эту запись в режиме реального времени на другие серверы (именно поэтому система неявно требует балансировщика нагрузки, чтобы предотвратить передачу одной и той же записи 2+ различным мастерам в в то же время); а также
- Вы можете иметь активные / активные или активные / пассивные настройки. В первом случае балансировщик нагрузки действительно балансирует записи по всем узлам. Я не очень понимаю последнее (активный / пассивный)
Итак, для начала, если что-то, что я изложил выше, неверно, пожалуйста, начните исправлять меня или разъяснять это для меня! Предполагая, что я более или менее на цели:
Тогда какая (на самом деле) разница между Multi-Master и Peer-to-Peer (P2P)? В системе P2P любое чтение выполняется и возвращается локально, а любая запись записывается локально, а затем реплицируется на все одноранговые узлы... нетак ли это одно и то же?!
3 ответа
Мастер Раб
- Только Мастер может принимать записи.
- Подчиненные устройства асинхронно реплицируются с главного сервера и обслуживают только запросы чтения.
- Для предотвращения потери данных фиксация может быть помечена как завершенная, если ее записали как минимум n подчиненных устройств вместе с мастером.
- MySql
Мастер - Мастер или Мульти Мастер
- Любой сервер может выполнять чтение / запись.
- Все серверы реплицируются синхронно. Так что данные всегда согласованы.
- Может быть настроен для асинхронной репликации, но тогда она становится похожей на архитектуру Peer to Peer
- Имеет проблему расщепления мозга только с двумя хозяевами. Можно решить, имея не менее 3 мастеров.
- CouchDB
Пиринговый
- Все серверы могут выполнять как чтение, так и запись.
- Асинхронная репликация между серверами, поэтому чтения могут быть разными. (Возможная согласованность)
- Кассандра, ElasticSearch
Лидер последователь
- Только лидер выполняет чтение / запись.
- Последователи реплицируются только асинхронно.
- Может быть настроен для N последователей для синхронной репликации, чтобы предотвратить потерю данных в случае отказа ведущего.
- Кафка
Они могут показаться похожими, но есть небольшие различия, надеюсь, это поможет:
В Active/Active записи могут идти на любой сервер, а затем каскадно к другим серверам в кластере.
В Active/Passive чтения будут когда-либо идти только к одному узлу в кластере и затем будут каскадно подключаться к другим узлам.
В зависимости от технологии и реализации в обоих сценариях операции чтения могут обслуживаться любым из узлов в кластере.
Архитектура с несколькими мастерами Репликация с несколькими мастерами - это метод репликации базы данных, который позволяет хранить данные на группе компьютеров и обновлять их любым членом группы. Все участники реагируют на запросы данных клиентов. ... Основными целями репликации с несколькими мастерами являются повышение доступности и сокращение времени отклика сервера.Одноранговая архитектура В одноранговой (P2P) сети группа компьютеров связана вместе с одинаковыми разрешениями и обязанностями по обработке данных. В отличие от традиционной сети клиент-сервер, никакие устройства в сети P2P не предназначены исключительно для обслуживания или приема данных.