Я использую Docker с Hazelcast 3.6. Я запускаю экземпляры Hazelcast и хочу запустить свое приложение только после того, как кластер будет готов для запросов.

Я читал в документации, что можно получить доступ к Hazelcast через curl, но у меня это не работает. Я получаю (52) Empty reply from server при попытке POST экземпляра Hazelcast, который запущен и готов.

Есть ли способ проверить, готов ли Hazelcast? Например, для Кассандры я бегу wget --spider 0.0.0.0:9042 для RabbitMQ отлично работает netcat -z -w 2 rabbit 5672. Есть ли подобное решение для Hazelcast?

1
Charlie 12 Май 2016 в 22:03

2 ответа

Лучший ответ

Вы можете использовать REST API для управления кластером, описанный в документации. Еще один совет: вы можете использовать скрипт cluster.sh в каталоге bin для взаимодействия с конечными точками управления.

Вы пытаетесь использовать клиентский API REST (для доступа к картам и очередям), который по умолчанию отключен.

Дайте знать, если у вас появятся вопросы.

Спасибо

2
Vik Gamov 12 Май 2016 в 20:53

(Опубликовано от имени ОП) .

Внимание : Не забудьте скрыть имя группы и пароль при использовании общедоступного CI и / или репозитория кода, если вам не нужно, чтобы все люди видели эти данные.

  • прежде всего мне пришлось добавить группу кластеров в конфигурацию, см. Создание групп кластеров в документации;
  • затем используйте curl --data "${GROUPNAME}&${PASSWORD}" http://${ADDRESS}:${PORT}/hazelcast/rest/management/cluster/state, чтобы дождаться готовности кластера.

Например, в моем случае, когда Hazelcast слушает 0.0.0.0:5701 с именем группы app1 и паролем app1-pass, это выглядит следующим образом

curl --data "app1&app1-pass" \
     http://0.0.0.0:5701/hazelcast/rest/management/cluster/state

Заметка

Как я понял, он не покажет, все ли узлы готовы, поэтому мне нужно проверить их отдельно. Когда я устанавливаю hazelcast.initial.min.cluster.size на 2, основной узел показывает сообщение HazelcastInstance waiting for cluster size of 2, а curl возвращает {"status":"success","state":"active"}.

0
halfer 28 Май 2016 в 10:47