Настройка активной георепликации для экземпляров Кэша Azure для Redis уровня "Корпоративный"
Из этой статьи вы узнаете, как настроить кэш с активной георепликацией с помощью портала Azure.
При активной георепликации до пяти экземпляров Кэша Azure для Redis уровня «Корпоративный» группируются в один кэш, охватывающий несколько регионов Azure. Все экземпляры действуют как локальные первичные кэши. Приложение определяет, какие экземпляры следует использовать для запросов на чтение и запись.
Примечание.
Плата за передачу данных между регионами Azure будет взиматься по стандартному тарифу на пропускную способность.
Область доступности
Уровень | "Базовый", "Стандартный" | Premium | Enterprise, Enterprise Flash |
---|---|---|---|
На месте | No | No | Да |
Уровень "Премиум" Кэш Azure для Redis предлагает версию георепликации, называемую пассивной георепликацией. Пассивный георепликация предоставляет активную-пассивные конфигурацию.
Условия для использования активной георепликации
Активная георепликация имеет ряд ограничений:
- Поддерживаются только модули RediSearch и RedisJSON
- На уровне Enterprise Flash можно использовать только политику вытеснения без вытеснения. Все политики вытеснения поддерживаются на уровне Enterprise .
- Постоянное хранение данных не поддерживается, так как активная георепликация настолько эффективна, что этого не требуется.
- Невозможно добавить существующий кэш (то есть запущенный) в группу георепликации. Кэш можно добавить только в группу георепликации при создании кэша.
- У всех кэшей, входящих в группе георепликации, должна совпадать конфигурация. Например, у всех кэшей должны совпадать SKU, емкость, политика вытеснения и кластеризации, модули и настройки TLS.
- При использовании активной георепликации нельзя использовать команды Redis
FLUSHALL
иFLUSHDB
. Запрет на использование команд предотвращает непреднамеренное удаление данных. Вместо этого используйте операцию очистки с портала. - Активная георепликация не поддерживается в E1 и любых номерах SKU Flash.
Создание или присоединение группы активной георепликации
При создании нового ресурса Кэша Azure для Redis выберите вкладку Дополнительно. Заполните первую часть формы, включая политику кластеризации. Дополнительные сведения о выборе политики кластеризации см. в разделе "Кластеризация ".
Нажмите кнопку Настроить, чтобы настроить активную георепликацию.
Создайте новую группу репликации для первого экземпляра кэша. Или выберите существующую из списка.
Нажмите кнопку Настроить, чтобы завершить процесс.
Дождитесь успешного создания первого кэша. После завершения вы увидите Настроено для Активной георепликации. Повторите описанные выше шаги для каждого экземпляра кэша в группе георепликации.
Удаление из группы активной георепликации
Чтобы удалить экземпляр кэша из группы активной георепликации, просто удалите его. Остальные экземпляры затем будут автоматически перенастроены.
Отмена связи при сбое региона
Если один из кэшей в группе репликации недоступен из-за сбоя региона, можно принудительно удалить недоступный кэш из группы репликации. После применения принудительной связи с кэшем вы не сможете синхронизировать данные, записанные в этот кэш обратно в группу репликации после принудительной отмены связи.
Необходимо удалить недоступный кэш, так как оставшиеся кэши в группе репликации начинают хранить метаданные, которые не были общими для недоступного кэша. В подобном случае доступные кэши в группе репликации могут столкнуться с нехваткой памяти.
Перейдите на портал Azure и выберите в группе репликации один из доступных кэшей.
В меню ресурсов слева выберите Активная георепликация, чтобы просмотреть параметры в рабочей области.
Выберите кэш, связь с которым требуется принудительно отменить, установив флажок.
Выберите Принудительная отмена связи и нажмите ОК для подтверждения.
Когда доступность региона восстановится, нужно будет удалить его кэш и повторно создать его, чтобы снова добавить в группу репликации.
Настройка активной георепликации с помощью Azure CLI или PowerShell
Azure CLI
Azure CLI позволяет создать кэш и группу георепликации или добавить новый кэш в существующую группу георепликации. Дополнительные сведения см. в разделе az redisenterprise create.
Создание экземпляра уровня "Корпоративный" в новой группе георепликации с помощью Azure CLI
В этом примере создается новый экземпляр кэша уровня "Корпоративный" E10 в Кэше Azure для Redis с именем Cache1 в регионе "Восточная часть США". Затем кэш добавляется в новую группу активной георепликации replicationGroup:
az redisenterprise create --location "East US" --cluster-name "Cache1" --sku "Enterprise_E10" --resource-group "myResourceGroup" --group-nickname "replicationGroup" --linked-databases id="/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache1/databases/default"
Чтобы правильно настроить активную георепликацию, добавьте идентификатор создаваемого экземпляра кэша с параметром --linked-databases
. Идентификатор имеет следующий формат.
/subscriptions/<your-subscription-ID>/resourceGroups/<your-resource-group-name>/providers/Microsoft.Cache/redisEnterprise/<your-cache-name>/databases/default
Создание нового экземпляра уровня "Корпоративный" в существующей группе георепликации с помощью Azure CLI
В этом примере создается новый экземпляр кэша Enterprise E10 с именем Cache2 в регионе "Западная часть США". Затем скрипт добавляет этот кэш в активную группу георепликации replicationGroup
, которая была создана в рамках предыдущей процедуры. Таким образом, он связан в конфигурации "активный — активный" с Cache1.
az redisenterprise create --location "West US" --cluster-name "Cache2" --sku "Enterprise_E10" --resource-group "myResourceGroup" --group-nickname "replicationGroup" --linked-databases id="/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache1/databases/default" --linked-databases id="/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache2/databases/default"
Как и ранее, необходимо перечислить Cache1 и Cache2 с использованием параметра --linked-databases
.
Azure PowerShell
PowerShell позволяет создать кэш и группу георепликации или добавить новый кэш в существующую группу георепликации. Дополнительные сведения см. в статье New-AzRedisEnterpriseCache.
Создание экземпляра уровня "Корпоративный" в новой группе георепликации с помощью PowerShell
В этом примере создается новый экземпляр кэша уровня "Корпоративный" E10 в Кэше Azure для Redis с именем Cache1 в регионе "Восточная часть США". Затем кэш добавляется в новую группу активной георепликации replicationGroup:
New-AzRedisEnterpriseCache -Name "Cache1" -ResourceGroupName "myResourceGroup" -Location "East US" -Sku "Enterprise_E10" -GroupNickname "replicationGroup" -LinkedDatabase '{id:"/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache1/databases/default"}'
Чтобы правильно настроить активную георепликацию, добавьте идентификатор создаваемого экземпляра кэша с параметром -LinkedDatabase
. Идентификатор имеет следующий формат.
/subscriptions/<your-subscription-ID>/resourceGroups/<your-resource-group-name>/providers/Microsoft.Cache/redisEnterprise/<your-cache-name>/databases/default
Создание нового экземпляра уровня "Корпоративный" в существующей группе георепликации с помощью PowerShell
В этом примере создается новый экземпляр кэша Enterprise E10 с именем Cache2 в регионе "Западная часть США". Затем скрипт добавляет кэш в группу репликации active георепликации , созданную в предыдущей процедуре. После выполнения команды два кэша , Cache1 и Cache2, связаны в конфигурации active-active.
New-AzRedisEnterpriseCache -Name "Cache2" -ResourceGroupName "myResourceGroup" -Location "West US" -Sku "Enterprise_E10" -GroupNickname "replicationGroup" -LinkedDatabase '{id:"/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache1/databases/default"}', '{id:"/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache2/databases/default"}'
Как и ранее, необходимо перечислить Cache1 и Cache2 с использованием параметра -LinkedDatabase
.
Масштабирование экземпляров в группе георепликации
Можно масштабировать экземпляры, настроенные для использования активной георепликации. Однако у вас могут возникнуть проблемы, если в одну группу георепликации будут входить кэши разного размера. Чтобы предотвратить возникновение этих проблем, все кэши в группе георепликации должны иметь одинаковый размер и емкость.
Так как одновременно масштабировать все экземпляры в группе георепликации сложно, Кэш Azure для Redis имеет механизм блокировки. При масштабировании одного экземпляра в группе георепликации базовая виртуальная машина масштабируется, но доступная память ограничена исходным размером, пока другие экземпляры не будут масштабироваться. Все другие операции масштабирования для оставшихся экземпляров блокируются до тех пор, пока они не соответствуют той же конфигурации, что и первый кэш для масштабирования.
Пример масштабирования
Например, в группе георепликации может быть три экземпляра, все экземпляры Enterprise E10:
Имя экземпляра | Redis00 | Redis01 | Redis02 |
---|---|---|---|
Тип | Корпоративная E10 | Корпоративная E10 | Корпоративная E10 |
Предположим, вы хотите увеличить масштаб каждого экземпляра в этой группе георепликации до экземпляра Enterprise E20. Сначала вы масштабируете один из кэшей до E20:
Имя экземпляра | Redis00 | Redis01 | Redis02 |
---|---|---|---|
Тип | Enterprise E20 | Корпоративная E10 | Корпоративная E10 |
На этом этапе Redis01
Redis02
экземпляры могут масштабироваться только до экземпляра Enterprise E20. Все прочие операции масштабирования заблокированы.
Примечание.
Экземпляр Redis00
не блокирует масштабирование дальше на этом этапе. Но он блокируется один раз Redis01
или Redis02
масштабируется, чтобы быть корпоративным E20.
После масштабирования каждого экземпляра до одного уровня и размера все блокировки масштабирования удаляются:
Имя экземпляра | Redis00 | Redis01 | Redis02 |
---|---|---|---|
Тип | Enterprise E20 | Enterprise E20 | Enterprise E20 |
Операция очистки
Из-за непреднамеренной потери данных команды Redis FLUSHALL
и FLUSHDB
невозможно применить ни к каким экземплярам кэша, которые находятся в группе георепликации. Вместо этого нажмите кнопку Очистить кэш(и) в верхней части рабочей области Активная георепликация.
Метрика георепликации
Метрика "Работоспособность георепликации" в корпоративном уровне Кэш Azure для Redis помогает отслеживать работоспособность геореплицированных кластеров. Эта метрика используется для отслеживания состояния синхронизации между георепликами.
Чтобы отслеживать метрику "Работоспособность георепликации" в портал Azure, выполните следующие действия.
Откройте портал Azure и выберите экземпляр Кэш Azure для Redis.
В меню "Ресурс" выберите метрики в разделе "Мониторинг ".
Выберите "Добавить метрику" и выберите метрику "Работоспособность георепликации".
При необходимости примените фильтры для определенных геореплик.
Вы можете настроить оповещение, чтобы уведомить вас о том, что метрика "Георепликация работоспособной " выдает неработоспособное значение (0) непрерывно в течение более 60 минут.
Выберите Новое правило генерации оповещений.
Определите условие для активации, если значение метрики равно 0 не менее 60 минут, рекомендуемое время.
Добавьте группы действий для уведомлений, например электронной почты, SMS и других.
Сохраните оповещение.
Дополнительные сведения о настройке оповещений для кэша Redis Enterprise см. в разделе "Мониторинг кэшей Redis".
Внимание
Эта метрика может временно отображаться как неработоспособная из-за обычных операций, таких как события обслуживания или масштабирование, инициированные Azure или клиентом. Чтобы избежать ложных предупреждений, рекомендуется настроить окно наблюдения в течение 60 минут, где метрика продолжает оставаться неработоспособной в качестве соответствующего времени для создания оповещения, так как это может указывать на проблему, требующую вмешательства.
Распространенные проблемы на стороне клиента, которые могут вызвать проблемы синхронизации между георепликами
Использование пользовательских хэш-тегов. Использование пользовательских хэштегов в Redis может привести к неравномерному распределению данных между сегментами, что может привести к проблемам с производительностью и синхронизацией в георепликах, поэтому не используйте пользовательские хэштеги, если база данных не должна выполнять несколько ключевых операций.
Большой размер ключа— большие ключи могут создавать проблемы синхронизации между георепликами. Чтобы обеспечить плавную производительность и надежную репликацию, рекомендуется сохранить размеры ключей до 500 МБ при использовании георепликации. Если размер отдельного ключа приближается к 2 ГБ, кэш сталкивается с проблемами с работоспособностью георепликации.
Очистка кэшей с помощью Azure CLI или PowerShell
Чтобы активировать операцию очистки, можно также воспользоваться Azure CLI и PowerShell. Подробнее о применении Azure CLI см. в статье о az redisenterprise database flush. Подробнее о применении PowerShell см. в статье об Invoke-AzRedisEnterpriseCacheDatabaseFlush.
Внимание
При использовании функции Очистка кэшей соблюдайте осторожность. Если нажать на эту кнопку, будут удалены все данные, которые содержатся в текущем кэше и во ВСЕХ связанных с ним кэшах из соответствующей группы георепликации.
Для управления доступом к этой функции воспользуйтесь функцией Управление доступом на основе ролей Azure. Доступ к функции очистки всех кэшей следует предоставлять только авторизованным пользователям.
Следующие шаги
Узнайте больше о функциях Кэша Azure для Redis.