Настройка активной георепликации для экземпляров Кэша Azure для Redis уровня "Корпоративный"
Из этой статьи вы узнаете, как настроить кэш с активной георепликацией с помощью портала Azure.
При активной георепликации до пяти экземпляров Кэша Azure для Redis уровня «Корпоративный» группируются в один кэш, охватывающий несколько регионов Azure. Все экземпляры действуют как локальные первичные кэши. Приложение определяет, какие экземпляры следует использовать для запросов на чтение и запись.
Примечание.
Плата за передачу данных между регионами Azure будет взиматься по стандартному тарифу на пропускную способность.
Область доступности
Уровень | "Базовый", "Стандартный" | Premium | Enterprise, Enterprise Flash |
---|---|---|---|
На месте | No | No | Да |
Уровень "Премиум" Кэш Azure для Redis предлагает версию георепликации, называемую пассивной георепликацией. Пассивный георепликация предоставляет активную-пассивные конфигурацию.
Предварительные требования для активной георепликации
При использовании активной георепликации существует несколько ограничений:
- Поддерживаются только модули RediSearch и RedisJSON
- На уровне Enterprise Flash можно использовать только политику вытеснения без вытеснения. Все политики вытеснения поддерживаются на уровне Enterprise .
- Сохраняемость данных не поддерживается, так как активная георепликация обеспечивает превосходный интерфейс.
- Невозможно добавить существующий кэш (то есть запущенный) в группу георепликации. Кэш можно добавить только в группу георепликации при создании кэша.
- Все кэши в группе георепликации должны иметь одинаковую конфигурацию. Например, все кэши должны иметь одинаковый номер SKU, емкость, политику вытеснения, политику кластеризации, модули и параметры TLS.
- Команды Redis
FLUSHDB
нельзя использовать при использовании активнойFLUSHALL
георепликации. Запрет команд предотвращает непреднамеренное удаление данных. Вместо этого используйте операцию очистки с портала. - Номер SKU E1 не поддерживает активную георепликацию.
Создание или присоединение группы активной георепликации
При создании нового ресурса Кэша Azure для Redis выберите вкладку Дополнительно. Заполните первую часть формы, включая политику кластеризации. Дополнительные сведения о выборе политики кластеризации см. в разделе "Кластеризация" в Enterprise.
Нажмите кнопку Настроить, чтобы настроить активную георепликацию.
Создайте новую группу репликации для первого экземпляра кэша. Или выберите существующую из списка.
Нажмите кнопку Настроить, чтобы завершить процесс.
Дождитесь успешного создания первого кэша. После завершения вы увидите Настроено для Активной георепликации. Повторите описанные выше шаги для каждого экземпляра кэша в группе георепликации.
Удаление из группы активной георепликации
Чтобы удалить экземпляр кэша из группы активной георепликации, просто удалите его. Остальные экземпляры затем автоматически настраиваются.
Принудительная отмена связи в случае сбоя региона
Если один из кэшей в группе репликации недоступен из-за сбоя региона, можно принудительно удалить недоступный кэш из группы репликации.
Недоступный кэш следует удалить, так как оставшиеся в группе репликации кэши начнут хранить метаданные, которые не поступят в недоступный кэш. В подобном случае доступные кэши в группе репликации могут столкнуться с нехваткой памяти.
Перейдите на портал 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/34b6ecbd-ab5c-4768-b0b8-bf587aba80f6/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/34b6ecbd-ab5c-4768-b0b8-bf587aba80f6/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache1/databases/default" --linked-databases id="/subscriptions/34b6ecbd-ab5c-4768-b0b8-bf587aba80f6/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/34b6ecbd-ab5c-4768-b0b8-bf587aba80f6/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 в регионе "Западная часть США". Затем скрипт добавляет кэш в активную группу георепликации репликации "replicationGroup", созданную в предыдущей процедуре. связь между двумя кэшами, Cache1 и Cache2 в конфигурации active-active.
New-AzRedisEnterpriseCache -Name "Cache2" -ResourceGroupName "myResourceGroup" -Location "West US" -Sku "Enterprise_E10" -GroupNickname "replicationGroup" -LinkedDatabase '{id:"/subscriptions/34b6ecbd-ab5c-4768-b0b8-bf587aba80f6/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache1/databases/default"}', '{id:"/subscriptions/34b6ecbd-ab5c-4768-b0b8-bf587aba80f6/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 |
Операция очистки
Из-за непреднамеренной потери данных нельзя использовать FLUSHALL
команды Redis FLUSHDB
с любым экземпляром кэша, находящимся в группе георепликации. Вместо этого нажмите кнопку Flush Cache(s), расположенную в верхней части рабочей области активной георепликации .
Очистка кэшей с помощью Azure CLI или PowerShell
Azure CLI и PowerShell также можно использовать для активации операции очистки. Дополнительные сведения об использовании Azure CLI см. в статье az redisenterprise database flush. Дополнительные сведения об использовании PowerShell см. в разделе Invoke-AzRedisEnterpriseCacheDatabaseFlush.
Внимание
Будьте осторожны при использовании функции кэшей Flush. При выборе кнопки удаляются все данные из текущего кэша и из всех связанных кэшей в группе георепликации.
Управление доступом к функции с помощью управления доступом на основе ролей Azure. Доступ к очистке всех кэшей должен быть предоставлен только авторизованным пользователям.
Следующие шаги
Узнайте больше о функциях Кэша Azure для Redis.