Использование Azure Redis в качестве кэша сеансов для WebSphere Liberty или Open Liberty
В этой статье описывается, как использовать Azure Redis в качестве кэша сеансов HTTP для WebSphere Liberty или Open Liberty.
В руководстве описаны следующие действия:
- Создайте экземпляр Azure Redis с управлением в качестве кэша сеансов.
- Подготовьте пример приложения, которое обеспечивает сохраняемость сеансов HTTP.
- Запустите пример приложения локально.
Эта статья предназначена, чтобы помочь вам быстро приступить к развертыванию. Прежде чем перейти к производству, вы должны ознакомиться с Tuning Liberty.
Если вы заинтересованы в предоставлении отзывов или тесной работе над вашими сценариями миграции с командой разработчиков, создающей решения WebSphere в Azure, заполните этот короткий опрос по миграции WebSphere и укажите свои контактные данные. Команда руководителей программ, архитекторов и инженеров будет быстро связаться с вами, чтобы начать тесное сотрудничество.
Требования
- Подписка Azure. Если у вас еще нет подписки Azure, создайте бесплатную учетную запись перед началом работы.
- Подготовьте локальную машину с установленной операционной системой наподобие Ubuntu, macOS или подсистемой Windows для работы с Linux.
- Установите реализацию Java Standard Edition (SE) версии 17 или более поздней версии, например сборку Microsoft OpenJDK.
- Установите Maven 3.9.8 или более поздней версии.
- Убедитесь, что установлен Git.
Создайте управляемый экземпляр Redis в Azure
Azure Managed Redis предоставляет хранилище данных в памяти на основе программного обеспечения Redis Enterprise. Выполните следующие действия, чтобы создать экземпляр Управляемого Redis в Azure, а затем запишите сведения о подключении. Эти сведения используются позже для настройки примера приложения.
Создайте управляемый экземпляр Redis в Azure, следуя инструкциям в разделе Краткое руководство: Создание управляемого экземпляра Redis в Azure. Внимательно обратите внимание на следующие различия:
На шаге 3 раздела создание экземпляра Redis, где вы находитесь на вкладке Базовые, выберите номер S KU кэша, который поддерживает Управляемый Redis Azure. В этом руководстве выберите Balanced (для рабочих нагрузок общего назначения с обычными требованиями к производительности). Дополнительные сведения см. в разделе Выбор нужного уровня.
На шаге 4 раздела Создание экземпляра Redis, где вы находитесь на вкладке Сети, для параметра Подключаемость выберите Общедоступная Конечная Точка. Этот вариант лучше всего подходит для простоты при использовании этого руководства. Для производства стоит рассмотреть использование частной конечной точки для повышения безопасности.
На шаге 5 раздела создание экземпляра Redis, где вы находитесь на вкладке Advanced, настройте следующие параметры:
Для проверки подлинностивключите проверку подлинности ключей доступа. Этот вариант лучше всего подходит для простоты при использовании этого руководства. Для оптимальной безопасности рекомендуется использовать идентификатор Microsoft Entra с управляемыми удостоверениями для авторизации запросов к кэшу, если это возможно. Авторизация с помощью идентификатора Microsoft Entra и управляемых удостоверений обеспечивает более высокую безопасность и удобство использования при авторизации ключа общего доступа. Для получения дополнительной информации об использовании управляемых удостоверений с кэшем см. в разделе Используйте идентификатор Microsoft Entra для проверки подлинности кэша.
Задайте политики кластеризации значение Enterprise для некластеризованного кэша, который работает в этом руководстве, где используется конфигурация одного узла. Для получения дополнительной информации см. раздел Кластеризация в разделе Корпоративные.
После завершения развертывания выберите Перейти к ресурсу, если вы находитесь на странице развертывания. В противном случае перейдите на портал Azure, найдите и выберите экземпляр Azure Managed Redis.
На странице обзора запишите значение конечной точки. Вы используете это значение в переменной среды
REDIS_CACHE_ADDRESS
в дальнейшем.Выберите «Параметры»>«Аутентификация». Выберите ключи доступа и запишите основное значение. Это значение позже используется в качестве переменной среды
REDIS_CACHE_KEY
.Используйте следующую команду для экспорта переменных среды
REDIS_CACHE_ADDRESS
иREDIS_CACHE_KEY
:export REDIS_CACHE_ADDRESS=rediss://<your-redis-cache-endpoint> export REDIS_CACHE_KEY=<your-primary-access-key>
Подготовка примера приложения
WebSphere Liberty и Open Liberty предоставляют функцию кэша сеансов, которая позволяет хранить данные сеанса HTTP во внешнем кэше. В этом руководстве вы используете функцию постоянства сеансов JCache для хранения данных сеанса в управляемом экземпляре Redis в Azure.
Используйте следующие команды, чтобы клонировать пример кода для этого руководства. Пример в репозитории open-liberty-on-aks на GitHub. В репозитории содержится несколько примеров. В этой статье используется java-app-jcache.
git clone https://github.com/Azure-Samples/open-liberty-on-aks.git
cd open-liberty-on-aks
git checkout 20250228
cd java-app-jcache
Если появится сообщение о состоянии detached HEAD
, это сообщение можно проигнорировать. Это просто означает, что вы проверили тег.
Приложение имеет следующую структуру файлов:
java-app-jcache/
├── pom.xml
├── pom-redisson.xml
└── src
└── main
├── docker
│ ├── Dockerfile
│ └── Dockerfile-wlp
├── java
├── liberty
│ └── config
│ └── server.xml
├── redisson
│ └── redisson-config.yaml
├── resources
└── webapp
Файл pom.xml — это файл проекта Maven, содержащий зависимости и подключаемые модули для примера приложения.
Файл pom-redisson.xml используется для копирования зависимостей для клиентской библиотеки Redisson в каталог общих ресурсов сервера Liberty позже.
Каталоги java, ресурсов и веб-приложений содержат исходный код примера приложения.
В каталоге liberty/config файл server.xml используется для настройки кэша сеансов HTTP для Open Liberty и WebSphere Liberty.
В каталоге redisson используется файл redisson-config.yaml для настройки соединения с управляемым экземпляром Redis в Azure.
Каталог docker содержит два файла Dockerfile. Dockerfile используется для создания образа с помощью Open Liberty и Dockerfile-wlp используется для создания образа с помощью WebSphere Liberty.
Локальное выполнение примера приложения
Выполните следующие действия, чтобы создать и запустить пример приложения локально. Для этих действий используется Maven и liberty-maven-plugin
. Дополнительные сведения о liberty-maven-plugin
см. в статье «Построение веб-приложения с помощью Maven».
Убедитесь, что текущий рабочий каталог — java-app-jcache в локальном клоне.
Выполните команду Maven
mvn clean package
и упаковайте приложение.Запустите
mvn -Predisson validate
, чтобы скопировать файл конфигурации Redisson в правильное целевое расположение. Этот шаг также вставляет значения переменных средыREDIS_CACHE_ADDRESS
иREDIS_CACHE_KEY
в файл redisson-config.yaml, на который ссылается файл server.xml.Запустите
mvn dependency:copy-dependencies -f pom-redisson.xml -DoutputDirectory=target/liberty/wlp/usr/shared/resources
, чтобы скопировать клиентскую библиотеку Redisson и её зависимости в каталог общих ресурсов сервера Liberty.Запустите команду Maven
mvn liberty:dev
и запустите приложение. Если приложение успешно запущено, вы увидитеThe defaultServer server is ready to run a smarter planet.
в выходных данных команды.Вы должны увидеть выходные данные, аналогичные приведенному ниже, если подключение Redis выполнено успешно.
[INFO] [err] [Default Executor-thread-3] INFO org.redisson.Version - Redisson 3.23.4 [INFO] [err] [redisson-netty-2-7] INFO org.redisson.connection.pool.MasterPubSubConnectionPool - 1 connections initialized for redacted.<region>.redis.azure.net/<ip_address>:10000 [INFO] [err] [redisson-netty-2-20] INFO org.redisson.connection.pool.MasterConnectionPool - 24 connections initialized for redacted.<region>.redis.azure.net/<ip_address>:10000
Тестирование приложения
Откройте веб-браузер и перейдите к http://localhost:9080, чтобы увидеть домашнюю страницу приложения.
В форме Новый кофе задайте значения полей Имя и Цена, а затем выберите Отправить. Приложение создает новый кофе, сохраняет его, а также помещает сеанс HTTP в управляемом экземпляре Redis в Azure.
Через несколько секунд вы увидите новый кофе, появившийся в таблице Наш кофе.
Снимок экрана: пример приложения, показывающий создание и сохранение нового кофе в сеансе приложения.
Чтобы продемонстрировать, что данные сеанса можно извлечь из Redis, используйте клавиши CTRL+C, чтобы остановить приложение и перезапустить его с помощью команды mvn liberty:dev
.
Затем обновите домашнюю страницу приложения. Вы должны увидеть те же данные сеанса, которые отображаются в разделе Новый кофе. Остановите приложение после завершения тестирования.
Помещение приложения в контейнер
При необходимости можно упаковать и запустить приложение в контейнере, выполнив следующие действия. Пример приложения предоставляет два файла Dockerfile для Open Liberty и WebSphere Liberty. В этом руководстве используется Dockerfile для Open Liberty, но вы можете использовать Dockerfile для WebSphere Liberty, выполнив аналогичные действия.
Установите Docker для вашей операционной системы. Дополнительные сведения см. в статье Получение Docker.
Чтобы создать образ Docker, используйте следующую команду:
docker build -t javaee-cafe-jcache:v1 -f src/main/docker/Dockerfile .
Чтобы запустить контейнер Docker, выполните следующую команду:
docker run -it --rm \ -p 9080:9080 \ -e REDIS_CACHE_ADDRESS=${REDIS_CACHE_ADDRESS} \ -e REDIS_CACHE_KEY=${REDIS_CACHE_KEY} \ --mount type=bind,source=$(pwd)/target/liberty/wlp/usr/servers/defaultServer/redisson-config.yaml,target=/config/redisson-config.yaml \ javaee-cafe-jcache:v1
После запуска контейнера его можно протестировать, выполнив действия, аналогичные тем, которые вы используете для локального запуска приложения без Docker.
Очистка ресурсов
Чтобы избежать расходов за использование Azure, необходимо удалить ненужные ресурсы. Если управляемый экземпляр Redis в Azure больше не нужен, найдите группу ресурсов и удалите её на портале Azure.
Дополнительные сведения см. в разделе Удаление групп ресурсов.
Следующие шаги
Дополнительные сведения можно найти по следующим ссылкам:
- Настройка сохранения сеанса Liberty с помощью JCache
- Поддержка JCache Redisson
- Конфигурация сервера Open Liberty
Если вы хотите развернуть пример приложения в Azure, обратитесь к следующим статьям:
- Разверните Java-приложение с помощью Open Liberty или WebSphere Liberty в кластере Azure Kubernetes Service (AKS)
- Развертывание WebSphere Liberty и Open Liberty в Azure Red Hat OpenShift
- Развертывание приложения Java с помощью Open Liberty в приложениях контейнеров Azure
Сведения о вариантах запуска продуктов WebSphere в Azure смотрите в статье «Решения для запуска семейства продуктов WebSphere в Azure».