Hazelcast для распределенных запросов только с одним экземпляром Hazelcast

на самом деле я пытаюсь Hazelcast предоставить прототип для кэширования данных. Hazelcast внедрен в микросервис с весенней загрузкой.

Мы используем распределенный запрос для поиска записей с частичными значениями ключа.

В настоящее время наша инфраструктура имеет возможность предоставить только один экземпляр микросервиса. Карта сохраняется с реализацией MapStore в базе данных.

Если микросервис выключен, мы теряем все данные в памяти, и распределенный запрос не возвращает никаких результатов. Использование loadAllKeys () и т. Д. Для инициализации данных в памяти через MapStore - это не способ, поскольку у нас будет много записей в базе данных для загрузки.

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

Лучший


person Rubén    schedule 14.07.2017    source источник
comment
Почему выключается микросервис?   -  person Neil Stevenson    schedule 14.07.2017
comment
Он должен поддерживать этот вариант использования из-за некоторых условий инфраструктуры.   -  person Rubén    schedule 31.07.2017


Ответы (1)


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

Реальный ответ - найти более быстрое постоянное хранилище, хотя также поможет сокращение количества отключений.

Последнее требует дизайнерской мысли, например, переносимые объекты позволяют данным в памяти изменять формат без перезагрузки.

person Neil Stevenson    schedule 01.08.2017