Теорема CAP (теорема Брюера) утверждает, что распределённая система может одновременно гарантировать только два из трёх основных свойств:
На практике сетевые разделения неизбежны в любой реальной распределённой системе. Это делает Partition Tolerance обязательным требованием, что вынуждает архитекторов выбирать между Consistency и Availability:
CP системы: HBase, Zookeeper, традиционные реляционные базы данных
AP системы: Cassandra, DynamoDB, CouchDB
CP — вернуть ошибку безопаснее, чем неправильный баланс счётаAP — показать слегка устаревшую ленту приемлемо, чтобы сохранить доступностьПонимание CAP помогает инженерам принимать осознанные решения при проектировании вместо случайных. При разработке системы ты должен:
Главный вывод: не существует универсально правильного выбора — правильный баланс целиком зависит от твоих бизнес-требований и допустимого уровня риска.
Сетевые разделения неизбежны в распределённых системах, поэтому Partition Tolerance должен пожертвовать в пользу либо Consistency, либо Availability.
Новый — ещё не проверен сообществом
Вы