Мы хотим создать распределенный кэш уникальных идентификаторов, которые будут использоваться в приложении для идентификации каждой транзакции. UNIQUE ID генерируется с использованием некоторой пользовательской логики (скажем, DATE + некоторое случайное число) в коде Java.
Приложение работает на 8 серверах приложений (с балансировкой нагрузки). Как только уникальный идентификатор используется приложением, кеш необходимо обновить ранее использованным значением. Поэтому обновление объекта кеша должно выполняться в многопоточной среде.
Лучше ли хранить локальный кеш на каждом сервере приложений (уникальная последовательность генерации идентификатора, специфичная для каждого узла). Но это не гарантирует последовательность идентификаторов транзакций в приложении.
Мы искали варианты hazlecast, geode, ignite и т. д. для создания распределенного кеша (однорангового кеша). Но какой из них будет хорошо работать при обновлении кеша в многопоточной среде.
Какое решение/модель кэширования лучше всего подходит для этой проблемы.