существовать«Просветление!» Для проектирования удаленной мультиактивной архитектуры достаточно прочитать эту статью》в одной статье,На основе потребностей аварийного восстановления,Обсуждается модель Архитектуры, написанная data. аспект чтения данных,Основное внимание уделяется решению проблем распределения нагрузки и маршрутизации запросов на чтение.,Это мало влияет на выбор Архитектуры аварийного восстановления. но,Это сценарий «читай сразу после написания».,Проблема категории дасогласованности,То есть проблема в том, согласуется ли записанная датада с прочитанной данными после записи.,В этой статье не обсуждаются различные модели согласованности.,Только конкретная проблема с требованием «читать сразу после записи» дана, что запрос на чтение, поступающий через короткое время после записи, может прочитать последнее записанное значение.,Это относительно уникальный и типичный сценарий чтения данных в интернет-приложениях.,Стоит изучить глубже,В этой статье предпринята попытка проанализировать детали этой проблемы и изучить соответствующие решения.
Следите за разработчиками Tencent Cloud и заранее получайте техническую информацию из первых рук👇
1.1 Направление решения
Проблема чтения сразу после записи означает, что после записи части данных данные считываются в течение короткого времени, и последнее записанное значение не может быть прочитано. Чтобы решить эту проблему, операция чтения должна иметь возможность получать данные из узла, куда данные были недавно записаны. Существует несколько направлений:
В инфраструктуре уровня доступа, логического уровня и уровня данных уровень базы данных имеет наиболее полную информацию о репликации данных и может отображать наиболее точное состояние данных. Если мы сможем начать с уровня базы данных, это фундаментально решит проблему. чтение сразу после записи. Если проблема не имеет никакого отношения к бизнесу, с деловой стороны будет проще. Например, копирование во время чтения выше проще сделать на уровне базы данных. Однако многие предприятия не используют такую идеальную систему баз данных, и решения следует рассматривать с точки зрения бизнеса.
NRW — это одноранговая парламентская система для каждого узла. Большинство используется для решения проблемы чтения новых значений. Значения R и W корректируются в соответствии с давлением уровня чтения и записи, чтобы обеспечить достижение системой. лучшее состояние. В этой модели есть проблема усиления запросов. Независимо от того, как вы регулируете значения R и W, она только сбалансирует нагрузку R и W. Неизбежно, что общая стоимость чтения и записи увеличится. В сценарии аварийного восстановления в пределах города решение NRW является дорогостоящим и менее приемлемым, поскольку:
Поэтому многие предприятия не используют одноранговый механизм для хранения данных, а применяют модель «главный-подчиненный». После записи основной точки записи в целях аварийного восстановления она будет ждать, пока не будут получены данные основной точки записи. копируется на некоторые подчиненные узлы до достижения успеха записи. Почему бы не выполнить репликацию на все подчиненные узлы? Потому что основное внимание уделяется аварийному восстановлению, обеспечению наличия избыточных данных за пределами основной точки записи, а не обеспечению полной согласованности данных на каждом узле. Таким образом, это эквивалентно NRW в W да 1 < W < N, но эта партия точек записи неравна, и запись осуществляется посредством репликации «главный-подчиненный». W эффект узла. Что касается операций чтения, то однократного чтения недостаточно. N < R + W Понятно。существовать Этот тип хозяина-раба Архитектура Вниз,Чтобы прочитать новое значение сразу после записи,В общем, я просто пошел читать и писать.,Он выродился в ситуацию «только запись-чтение».,Именно об этой модели и пойдет речь в этой статье.
1.2 Пример бизнес-архитектуры
Чтобы не быть слишком широким, следующее обсуждение будет основано на типичной городской архитектуре аварийного восстановления из трех мест и пяти центров, с которой столкнулся автор в своей работе. Я надеюсь, что обсуждение этой типичной модели поможет прояснить суть. При разработке плана на основе реальной ситуации Будьте вдохновлены. Несколько замечаний по архитектуре ниже:
1.3 Модель решения
Судя по диаграмме архитектуры бизнес-архитектуры, это похоже на ситуацию с несколькими R в NRW. Каждое чтение выполняется в разных городах. На самом деле это не так. Разбить «читать сразу после записи» можно на следующие пункты:
можно увидеть,Решить задачу чтения сразу после написания,Не обязательно, чтобы все запросы направлялись на основной узел записи.,Просто выберите «шипы»,Другими словами, да ищет решение: решение должно определить, какие данные имеют операции записи.,Когда запрос на чтение для определенного сценария поступает в течение определенного периода времени,Когда данные не уверены, синхронизировано ли да с подчиненной репликой,Направьте эту часть запроса на прочтение основной мысли. На сцене нескольких действий в разных местах,Точка доступа, откуда поступает запрос на чтение, может находиться на другом конце города.,Если требования к задержке запросов на чтение являются чувствительными,Также необходимо, чтобы новые данные могли обеспечить непосредственный доступ в течение короткого времени после записи.,Избегайте поездок по городу. Подведем итоги ключевых моментов:
Эти 4 пункта,да, исходя из местных особенностей,Процесс детализации слой за слоем,Давайте посмотрим на каждый из них ниже.
Различение бизнес-сценариев означает, как идентифицировать «сложные» сценарии, которые требуют немедленного прочтения после написания. По сути, это можно рассматривать с точки зрения обеих сторон вызывающего абонента Служить и провайдера Служить:
Уточнены сценарии чтения и письма.,Когда приходит каждый запрос пользователя на чтение,Определите атрибуты сцены,Если да не нужно читать сразу после написания, сценарий,Просто посетите локальную копию данных.,Нет необходимости заботиться о том, актуальна ли копия. Для сценариев, где требуется чтение сразу после записи,Требуется дальнейшее суждение и обработка.
Как определить, что определенный фрагмент данных был записан, имеет два направления:
Независимо от того, передает ли клиент идентификатор записи записи.,Также да За кулисами хранится идентификатор записи записи.,Оба вводят дополнительный механизм зависимостей вне библиотеки данных.,увеличит сложность,Представленный механизм более надежен, чем библиотека данных.,Также будет некоторый ущерб. но,Чтение сразу после написания в основном решает проблему уровня пользовательского опыта.,Следует сказать, что да в целом приемлемо. конечно,Конкретные детали должны быть тщательно оценены на основе фактического бизнеса.
При идентификации записанных данных, когда поступает запрос на чтение, сначала прочитайте недавно записанную идентификацию и определите, если недавней записи нет, это означает, что локальная копия уже имеет последние данные. Доступ к локальной копии данных. это. Если запись была сделана недавно, требуется дальнейшее рассмотрение и обработка.
Сценарии чтения часто предъявляют более высокие требования к производительности.,Задержка обработки — очень важный показатель,В межгородской Архитектуре, полной жизни в другом месте,Будет предоставлена локальная доступная копия.,для достижения цели низкой задержки. но,Обычные реплики чтения не имеют возможности предоставлять доступ к последним данным записи. Чтение сразу после написания,К основным факторам, которые необходимо учитывать при определении задержки, относятся:
После выяснения требований бизнеса к задержке,,Для запросов на чтение последнего значения,Если требования к задержке не так высоки,Просто помогите читателю написать суть,в противном случае,Необходимо обеспечить возможности близлежащего доступа。Внизлапшадак более общему За кулисами Запишите шаблон метки записи, чтобы проиллюстрировать принципиальную схему задержки.
Читать сразу после написания рядом доступ,Попросите копию, которая доступна вам, чтобы убедиться, что она актуальна.,И уровень данных Архитектура, о котором мы говорим, не может быть гарантирован.,Для этого требуется, чтобы бизнес-уровень успешно записывал данные на уровень данных.,Пожалуйста, напишите дополнительную копию в каждое место, запрашивающее доступ.,Для достижения цели близлежащего доступа. В этом случае,Записи записи, упомянутые выше в разделе «Данные записи идентификации», могут быть расширены.,Не только записывать и писать идентификацию,В то же время запишите конкретные записанные данные. Упрощенная схема обработки ниже,Расположение ближайшей копии,да используется для решения задачи чтения сразу после письма.,Объединение запросов на чтение не загрязняет данные.,А добиться сильной последовательности в бизнесе сложно.,Может быть легким по конструкции,Например:
Чтение сразу после записи — типичная локальная проблема,Если вы можете копировать детали на основе данных «главный-подчиненный» на уровне библиотеки данных,Опишите местные особенности,Решив ее, вы получите вдвое больший результат, прилагая вдвое меньше усилий. Данная статья основана на локальных особенностях проблемы.,С точки зрения бизнеса,Обобщена идея четырехэтапного решения: дифференциация бизнес-сценариев, запись идентификации, оценка требований к задержке и обеспечение близлежащего доступа.,Детализация слой за слоем,Уточнить местные особенности.
-End-
Автор оригинала|Сюн Чжанцзюнь
Есть ли у вашего бизнеса подобные проблемы?,Какова конкретная практика да? Добро пожаловать, чтобы оставлять комментарии и сообщения. Мы выберем 1 качественный отзыв,Раздайте 1 индивидуальный комплект сумок для документов Tencent Cloud (см. рисунок ниже). Розыгрыш лотереи состоится в 12:00 4 декабря.
📢📢Добро пожаловать в сообщество разработчиков Tencent Cloud, чтобы получать новейшую информацию, полезную информацию от громких имен, находить друзей по интересам и заводить друзей в том же городе. Goose Factory также предлагает возможности набора персонала и периферийные подарки ограниченным тиражом. жду тебя~