警告“在分区表中找到未知地址”

时间:2015-06-21 10:15:14

标签: java distributed distributed-computing hazelcast

使用Hazelcast时,我收到警告:

Jun 21, 2015 11:10:15 AM com.hazelcast.partition.InternalPartitionService
WARNING: [192.168.0.18]:5701 [5a11] [3.4.2] Following unknown addresses are found\
in partition table sent from master[Address[192.168.0.9]:5701]. 
(Probably they have recently joined or left the cluster.) {
        Address[192.168.0.13]:5701 } 
Jun 21, 2015 11:10:29 AM com.hazelcast.partition.InternalPartitionService 
WARNING: [192.168.0.18]:5701 [5a11] [3.4.2] Following unknown addresses are found\
in partition table sent from master[Address[192.168.0.20]:5701]. 
(Probably they have recently joined or left the cluster.) {
        Address[192.168.0.11]:5701
        Address[192.168.0.17]:5701 }  
Warning: irregular exit, check log

原因是什么,我是否必须采取措施避免这些警告?

详细说明:

这些警告发生在我的分布式计算结束时,而不是所有实例。因此,当发生此警告时,很可能其他一些实例已终止并因此“最近离开了群集”。

但为什么一个实例离开导致一个未知的地址?这是否意味着实例x以某种方式发出警告已发现实例y已离开,并且主人尚未找到并将y的地址发送到{{1} ,导致这个警告?

我应该采取措施避免这种警告吗?这是否意味着x忘记了它应该在最后进行的一些清理,以便主人立即发现y离开集群?实例执行的唯一清理是y的{​​{1}}。

我的日志消息末尾的不规则出口是否由分区表中的不一致引起?

1 个答案:

答案 0 :(得分:2)

为了实现均匀的数据分发,整个密钥空间被划分为可配置数量的分区(默认为271)。如果您知道密钥和许多分区,则可以始终告知密钥属于哪个分区。

尽管Hazelcast是一个点对点系统,并且没有主节点的概念,但是有一个主节点计算分区表,该分区表将分区号与包含所述分区的节点地址相关联。拓扑更改后需要重新计算分区表。

我认为您的问题是由非正常关闭节点引起的。