我已经看到属性概念存在于 Hazelcast。我想在启动时为每个成员定义属性,并使用这些属性检测哪个成员离开了集群。
我找不到如何以编程方式或通过配置来设置它。我尝试通过 getAttributes()
方法获取属性并添加一个新属性,但它抛出异常,因为它是一个不可修改的集合。
如何设置集群成员的属性?
答案 0 :(得分:0)
您可以在成员配置中设置属性,然后从客户端读取它们。例如,您可以启动一个 Hazelcast 集群,其中一个成员分配了一些属性,而另一个则没有。
// Member with attributes
Config config = new Config();
config.getMemberAttributeConfig().setAttribute("key-1", "value-1");
Hazelcast.newHazelcastInstance(config);
// Member without attributes
Hazelcast.newHazelcastInstance();
然后,在客户端,您可以读取属性。
HazelcastInstance client = HazelcastClient.newHazelcastClient();
for (Member member : client.getCluster().getMembers()) {
System.out.println("Member attributes: " + member.getAttributes());
}
它应该打印属性。
Member attributes: {key-1=value-1}
Member attributes: {}