我使用的是带有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-pass
的0.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 2
,curl
返回{"status":"success","state":"active"}
。