检查Hazelcast集群是否已准备好通过bash进行请求



我使用的是带有Hazelcast 3.6的Docker。我启动Hazelcast实例,只想在集群准备好接受请求后启动我的应用程序。

我在文档中读到,可以通过curl访问Hazelcast,但它对我不起作用。当尝试将POST发送到Hazelcast实例时,我得到了(52) Empty reply from server,该实例已启动并准备就绪。

有没有方法可以检查,Hazelcast是否准备好了?例如,对于Cassandra,我运行wget --spider 0.0.0.0:9042对于RabbitMQ来说,这一个非常适合netcat -z -w 2 rabbit 5672。Hazelcast有类似的解决方案吗?

您可以使用REST API进行集群管理,这在文档中进行了描述。另一个提示是,您可以使用bin目录中的cluster.sh脚本与管理端点进行交互。

您正在尝试访问REST客户端API(用于访问映射和队列),默认情况下已禁用。

如果你有任何问题,请告诉我。

感谢

(代表OP发布)

注意如果不需要所有人都能看到这些数据,请不要忘记在使用公共CI和/或代码存储库时隐藏组名和密码。

  • 首先,我必须在配置中添加集群组,请参阅文档中的创建集群组
  • 则使用CCD_ 8等待,直到集群准备就绪

例如,在我的情况下,当Hazelcast在组名为app1、密码为app1-pass0.0.0.0:5701上侦听时,它看起来如下

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 2curl返回{"status":"success","state":"active"}

最新更新