Статьи

Hazelcast с весенней загрузкой на Kubernetes

Hazelcast  — это ведущее решение для сетки данных в памяти ( IMDG ). Основная идея IMDG заключается в распределении данных по многим узлам внутри кластера. Таким образом, это кажется идеальным решением для работы на облачной платформе, такой как  Kubernetes , где вы можете легко увеличить или уменьшить количество запущенных экземпляров. Поскольку Hazelcast написан на Java, вы можете легко интегрировать его с вашим Java-приложением, используя стандартные библиотеки. Spring Boot также может упростить начало работы с Hazelcast  . Вы также можете использовать неофициальную библиотеку, реализующую шаблон Spring Repositories для Hazelcast —  Spring Data Hazelcast .

Основная цель этой статьи — продемонстрировать, как встроить Hazelcast в приложение Spring Boot и запустить его на Kubernetes в качестве кластера с несколькими экземплярами. Благодаря Spring Data Hazelcast нам не нужно вдаваться в детали типов данных Hazelcast. Хотя Spring Data Hazelcast не предоставляет много продвинутых функций, он очень хорош для начала.

Ищете что-то другое? Узнайте, как использовать встроенный Hazelcast в Kubernetes

Архитектура

Мы работаем с несколькими экземплярами одного приложения Spring Boot в Kubernetes. Каждое приложение предоставляет порт 8080 для доступа по API HTTP и 5701 для обнаружения членов кластера Hazelcast. Экземпляры Hazelcast встроены в приложения Spring Boot. Мы создаем две службы на Kubernetes. Первый из них предназначен для доступа через HTTP API, а второй отвечает за включение обнаружения между экземплярами Hazelcast. HTTP API будет использоваться для выполнения некоторых тестовых запросов, которые добавляют данные в кластер и находят там данные. Давайте перейдем к реализации.

пример

Исходный код с примером приложения, как обычно, доступен на GitHub. Он доступен по адресу  https://github.com/piomin/sample-hazelcast-spring-datagrid.git . Вам необходимо получить доступ к модулю employee-kubernetes-service .

зависимости

Интеграция между Spring и Hazelcast обеспечивается  hazelcast-spring библиотекой. Версия библиотек Hazelcast связана с Spring Boot через управление зависимостями, поэтому нам просто нужно определить версию Spring Boot для новейшей стабильной версии  2.2.4.RELEASE. Текущая версия Hazelcast связана с этой версией Spring Boot  3.12.5. Чтобы включить обнаружение членов Hazelcast в Kubernetes, нам также необходимо включить эту  hazelcast-kubernetes зависимость. Его версия не зависит от основных библиотек. Новая версия  2.0 предназначена для Hazelcast 4. Так как мы все еще используем Hazelcast 3, мы объявляем версию  1.5.2 о  hazelcast-kubernetes. Мы также включили Spring Data Hazelcast и, опционально, Lombok для упрощения.


XML