Весенние сессии с Apache Ignite

Фото Мориса Сала на Unsplash

Apache Ignite - это высокопроизводительная распределенная база данных, которая хранит данные в памяти (а также на постоянной основе).

Как и любое решение NoSQL, оно поддерживает репликацию и сегментирование прямо из коробки, но также обеспечивает транзакции ACID , поддержку SQL и Compute Grid .

В этой статье мы будем использовать Apache Ignite в качестве базы данных для Spring Sessions. Если вы уже используете этот инструмент, например, для вычислений Map-Reduce , нет необходимости развертывать еще один источник данных (например, Redis) для хранения сеансов - вы можете повторно использовать Apache Ignite.

Связь

Есть несколько способов подключиться к ignite из Java-приложения:

  1. Толстый клиент
  2. Тонкий клиент
  3. Драйвер JDBC

Мой совет - избегайте использования толстого клиента, если вы не используете определенные операции. Дело в том, что толстый клиент вставляет в топологию кластера как узел без данных. По умолчанию для связи узлов используется кольцевая топология , поэтому каждый клиентский узел замедляет общую связь ( для ее улучшения можно использовать ZooKeeper Discovery ).

Тонкий клиент

Мой любимый выбор - тонкий клиент. Вы можете увидеть поддерживаемые функции в этой таблице .

Таким образом, последние версии тонких клиентов могут делать практически все и не имеют некоторых недостатков. Он не вставляется в топологию, а подключается к одному из узлов сервера. Версия тонких клиентов может отличаться от версии кластера, что значительно упрощает обновление кластера.

Драйвер JDBC

Драйвер JDBC - это относительно простой способ подключения, особенно если вы раньше использовали реляционную базу данных и решили заменить предыдущую на Apache Ignite.

Если вы планируете использовать распределенные вычисления или низкоуровневые операции с IgniteCache, возможно, лучше сразу выбрать тонкий клиент.

Итак, чтобы подключиться к Apache Ignite, нам нужно добавить зависимость:

И создадим bean-компонент тонкого клиента:

Зажгите данные Spring

Чтобы использовать Apache Ignite в стиле Spring Data , нам нужно добавить эти две зависимости:

И включите репозитории Ignite, добавив аннотацию @EnableIgniteRepositories .

После этого мы можем создавать интерфейсы репозитория с помощью @RepositoryConfig:

Весенние сессии

Установлено соединение Apache Ignite, создан репозиторий Spring Data . Теперь все, что нам нужно, это создать bean-компонент org.springframework.session.SessionRepository. Apache Ignite - это хранилище значений ключей, которое может сериализовать / десериализовать любой объект Java , поэтому мы можем использовать MapSessionего как значение.

Заключение

Подключить Apache Ignite к проекту Spring Boot довольно просто благодаря ignite-spring-data-2.2-extзависимости, что позволяет нам использовать стандартные репозитории Spring Data с методами производных запросов и аннотациями @Query для более сложных запросов.

После этого вы можете использовать Apache Ignite не только для хранения сеансов, но также, например, в качестве кеша приложения или в качестве первичной базы данных (Apache Ignite поддерживает встроенную сохраняемость, начиная с версии 2.1).

Вы можете найти готовый исходный код на GitHub .

Suggested posts

Настройка и использование Apache Kafka с Spring Boot

Кафка с весенним сапогом

Настройка и использование Apache Kafka с Spring Boot

Введение Apache Kafka — это платформа распределенной потоковой передачи с открытым исходным кодом, которая обеспечивает крупномасштабную, высокопроизводительную и отказоустойчивую потоковую передачу данных в режиме реального времени. Система основана на модели публикации-подписки, в которой производители публикуют сообщения в темах, а потребители подписываются на эти темы для использования сообщений.

Освоение мобильной разработки: как выбрать лучший язык программирования для вашего приложения

Освоение мобильной разработки: как выбрать лучший язык программирования для вашего приложения

Мобильная разработка стала жизненно важным компонентом успеха бизнеса в современном цифровом мире. Как разработчик мобильного приложения, важно выбрать правильный язык программирования для создания своего приложения.

Related posts

«Обнаруженная Марианская впадина: раскрытие ужасающих скрытых истин бездны»

«Обнаруженная Марианская впадина: раскрытие ужасающих скрытых истин бездны»

Введение: Добро пожаловать, смелые читатели, в путешествие, которое приведет нас в самые темные глубины нашей планеты. В этом блоге мы погружаемся в загадочный мир Марианской впадины, раскрывая его скрытые секреты и открывая леденящие кровь истины, которые лежат под его поверхностью.

Сетевое телевидение Твиттер

Сетевое телевидение Твиттер

То, что было старым, теперь снова новое, а то, что раньше было блестящим, теперь кажется скучным. Я не говорю о джинсах JNCO, которые вернулись среди крутых парней в центре города вместе с другими моделями конца 1990-х годов.

БЕЗГРАНИЧНАЯ ЖИЗНЬ

Когда вы вырастаете, вам, как правило, говорят, что мир такой, какой он есть, и ваша жизнь состоит в том, чтобы просто жить своей жизнью внутри мира, никогда не рискуя своей жизнью, просто следовать установленному пути и умереть в конце, и стараться не слишком сильно бить стены. Но это очень ограниченная жизнь.

Как спасти планету и заработать деньги

Как спасти планету и заработать деньги

Сколько раз вы, не задумываясь, выбрасывали пластиковую бутылку, стеклянную банку, алюминиевую банку или пакет экологически чистой энергии? Сколько раз вы хотели получить что-то взамен за их переработку? Если вы похожи на большинство людей, ответ, вероятно, много раз. Переработка часто рассматривается как хлопотное дело, рутинная работа или обязанность, не приносящая немедленных или ощутимых выгод.