我知道/ hazelcast / health / ready的端口5701处有一个探针。
但是,当我使用部署在kubernetes集群上的嵌入式hazelcast时,我需要通过代码进行编程,所有通信都应通过主应用程序进行(这意味着hazelcast无法公开该端点,通过localhost使用http请求是不够的) 。我尝试查看文档,但没有找到任何帮助。
我发现唯一的发现是使用instance.getServer().getPartitionService().isLocalMemberSafe()
,但我没有证据表明这实际上与检查就绪探针相同。
任何帮助将不胜感激,谢谢!
答案 0 :(得分:0)
/ready
端点的exact logic是:
node.isRunning() && node.getNodeExtension().isStartCompleted()
我想您不能在代码中使用完全相同的代码,但是相当不错的近似值是:
instance.getLifecycleService().isRunning()
(唯一的区别是,它不会等到准备加入其他成员之后)instance.getPartitionService().isClusterSafe()
(不同之处在于它将等待所有Hazelcast迁移完成)您可以使用其中任何一个。如果您真的想确保Hazelcast成员在准备就绪时可以接收到流量,那么第二种选择是完全安全的。