Как связать встроенный Hazelcast, работающий внутри нескольких docker контейнеров одного и того же изображения - PullRequest
0 голосов
/ 15 апреля 2020

У меня есть приложение весенней загрузки. Я использую встроенный Hazelcast в этом веб-приложении. Я использую много данных, доступных в кеше. Изначально я использовал только один docker контейнер. Теперь, чтобы масштабировать ответ, я запустил 3 docker контейнера того же изображения. Все docker контейнеры теперь имеют встроенный Hazelcast. Поэтому, когда я нажму refre sh кеша, контейнеры, обслуживающие запрос, будут иметь только самые последние данные, а два других не будут иметь последних данных, пока и до тех пор, пока запрос refre sh не будет обработан.

Проблема:

Поскольку все три контейнера работают вместе с Hazelcast, Hazelcast для всех трех контейнеров не синхронизирован c. Мне нужно синхронизировать c все Hazelcast, работающие внутри контейнеров, так что один refre sh должен обновить sh данные кэша во всех трех контейнерах Hazelcast.

Как это сделать?

Редактировать: я использую docker Рой. В одной виртуальной машине у меня есть два контейнера, а в другой - один контейнер с одинаковым образом. Я обнаружил, что с помощью <public-address-ip> этого можно достичь, но пока не пытался.

1 Ответ

1 голос
/ 15 апреля 2020

Вам нужно, чтобы ваши экземпляры Hazelcast образовывали один кластер. Как это сделать, зависит от среды, в которой вы работаете. Подробности см. В Справочном руководстве Hazelcast «Механизмы обнаружения» .

Если вы работаете в Docker Swarm, вам следует использовать Docker Плагин Swarm Discovery SPI .

...