在向集群添加第二个和后续节点时,我在设置实现MapInterceptor接口的自定义拦截器时遇到问题。问题是,当在加入节点时注册我的自定义拦截器时,Hazelcast已经在特定的键下注册了拦截器(实际上这些是我的自定义拦截器,但首先在第一个节点上注册,然后在每个后续节点上注册)。这个问题的原因似乎是在每个新节点加入时调用的重新分区过程,这导致通过网络从加入集群的第一个节点复制拦截器,并在加入节点之前注册它们将自己完成这一操作。
我希望在每次新节点加入集群时注册新的拦截器的原因是,我的自定义拦截器带有一个特定于我想要在其上注册的节点的状态。目前,我做了一个变通方法,每当使用我的自定义拦截器时,都会注入重写状态。但如果可能的话,应用一些更有效和更简单的解决方案将是很好的。
发布于 2018-02-19 17:53:01
你看到related javadoc和ref manual了吗?您可以在拦截器实现中实现hashcode()方法,以防止链接它们。
https://stackoverflow.com/questions/48862951
复制相似问题