Зонд готовности Hazelcast - PullRequest
0 голосов
/ 17 июня 2020

Я знаю, что есть зонд, доступный в / hazelcast / health / ready на порту 5701.

Однако мне нужно сделать это программно с помощью кода, так как я использую встроенный hazelcast, развернутый в кластере kubernetes, и все коммуникации должны проходить через основное приложение (это означает, что hazelcast не может раскрыть эту конечную точку, использование http-запросов через localhost будет недостаточно). Я попытался заглянуть в документацию, но не нашел в этом помощи.

Единственное, что я нашел, - это использовать instance.getServer().getPartitionService().isLocalMemberSafe(), но у меня нет доказательств того, что это фактически то же самое, что и проверка проверки готовности.

Любая помощь будет принята с благодарностью, спасибо!

1 Ответ

0 голосов
/ 17 июня 2020

точное logi c для /ready конечной точки:

node.isRunning() && node.getNodeExtension().isStartCompleted()

Я думаю, вы не можете использовать точно то же самое из кода, но довольно хорошие приближения :

  1. instance.getLifecycleService().isRunning() (с той лишь разницей, что он не будет ждать, пока будет готов к присоединению к другим участникам)
  2. instance.getPartitionService().isClusterSafe() (разница в том, что он будет ждать все миграции Hazelcast на fini sh)

Вы можете использовать любой из них. Если вы хотите быть действительно уверены, что член Hazelcast сможет получить трафик c, когда он будет готов, тогда второй вариант полностью безопасен.

...