Узел Hazelcast не обнаруживает другой узел при использовании развертывания стека докеров - PullRequest
0 голосов
/ 27 мая 2019

Мне нужно настроить Hazelcast для веб-приложения с несколькими факторами репликации в среде докера и использовать Docker Swarm для развертывания приложения на нескольких хостах с использованием оверлейной сети.

Я сталкиваюсь с проблемой, что служба не может обнаружить другой узел в режиме роя, однако работает нормально в docker compose.Я использую приведенный ниже конфиг для конфигурации hazelcast.

<port auto-increment="true">5701</port>
<join>
  <multicast enabled="false">
    <multicast-group>224.2.2.3</multicast-group>
    <multicast-port>54327</multicast-port>
  </multicast>
  <tcp-ip enabled="true">
    <member>hazelcast-master</member>
  </tcp-ip>

</join>

здесь hazelcast-master - это имя моей службы в Docker.

Любая помощь будетцениться

Ответы [ 2 ]

0 голосов
/ 28 мая 2019

Я думаю, что mutlicast может не работать (по крайней мере, из коробки) в Docker Swarm.Прочитайте это и это .Docker Compose работает только потому, что развернут на одном хост-компьютере.

Что вы можете сделать, это попробовать использовать Hazelcast Docker Swarm Discovery Plugin .Кроме этого, другим вариантом является статическая конфигурация TCP-IP, которая, вероятно, не имеет особого смысла в Docker Swarm.

0 голосов
/ 27 мая 2019

Как вы настроили свою докерскую сеть? Есть ли hazelcast-master на вашем DNS-сервере? По умолчанию докер использует тот же DNS, что и хост, но если вы, например, поместите hazelcast-master в / etc / hosts, ваш гость докера не увидит его и не сможет его использовать. Либо используйте IP-адрес хоста, укажите полное доменное имя хоста (из DNS) или используйте --add-host при запуске контейнера Docker.

...