当前位置: 首页 > 知识库问答 >
问题:

Hazelcast-确保入口事件由单个处理程序处理

益明朗
2023-03-14

我有一个具有多个节点的Hazelcast集群,每个节点都由一个“守护进程”服务器进程的相同实例组成。这些守护进程是带有嵌入式Hazelcast缓存以及构成我的平台核心的逻辑的Java应用程序。我需要将平台上的某些事件分发给集群中的侦听器,这些侦听器可以驻留在任何(或所有)连接的节点中。从我阅读的文档来看,如果我在守护进程启动时将EntryEventListener附加到映射,那么每当该映射中发生事件时,就会在守护进程的每个运行实例中调用回调。

我希望回调在集群中为一个事件调用一次(在任何单个节点上)。因此,如果我在集群中有10个节点,并且每个节点在加入时在映射上注册一个EntryEventListener,我希望在该事件发生时触发这些侦听器实例中的任何一个(在任何节点上),而不是全部...我不在乎哪个节点侦听器处理事件,只要它只是侦听器的单个实例,而不是每个注册的侦听器。我该怎么做?

我看到这个老问题,听起来像是同一个问题,但我不确定,答案对我来说没有意义。多节点群集上的hazelcast条目侦听器

Hazelcast文档中有:

还有另一个名为local的属性,上面的示例中未显示该属性。它也是一个可选的布尔属性,如果将其设置为true,则可以侦听本地成员上的项。其默认值为false。

该“local”属性是否意味着该事件将仅在作为密钥主要所有者的节点上触发?

谢谢,特洛伊

共有1个答案

呼延学
2023-03-14

是的,仅当成员是密钥的主要所有者时,将本地设置为true将使侦听器触发事件。您可以使用本地侦听器实现所需的功能

 类似资料:
  • 事件就是用户或浏览器自身执行的某种动作。诸如click、load 和mouseover,都是事件的名字。而响应某个事件的函数就叫做事件处理程序(或事件侦听器)。事件处理程序的名字以"on"开头,因此click 事件的事件处理程序就是onclick,load 事件的事件处理程序就是onload。为事件指定处理程序的方式有好几种。 13.2.1 HTML事件处理程序某个元素支持的每种事件,都可以使用一

  • 问题内容: 有没有办法在单个函数调用上做到这一点? 就像是: 我知道这是一个语法混乱,但是只是为了给我一个我想实现的目标一个思路,一系列路由就很棒了! 有人知道怎么做吗? 问题答案: 我在寻找相同功能时遇到了这个问题。 @Jonathan Ong在上面的评论中提到,不建议将数组用于路径,但已在Express 4中对其进行了明确描述,并且它在Express 3.x中有效。这是尝试的示例: 从对象内部

  • 在下面的示例中,我有两个正在处理来自kafka的消息的服务实例,但我希望确保只在之后处理。 显然,通过将一个实例配置为仅从特定分区消费,可以很容易地解决这种情况,该分区将存储带有公共标识符的消息: 现在顺序得到了保证,将永远不会在之前处理。 但是,我在想这个问题是否可以用另一种方式来解决,直接在代码中而不是依赖基础设施?这看起来可能是微服务架构中的一个标准问题,但我不确定哪种方法是解决它的首选方法

  • 问题内容: 如果我想执行一个函数,我更喜欢做内联js: 因为它更容易调试。 但是,我听到有人说不要使用内联js,并这样做: 为什么建议使用js事件监听器? 问题答案: 基本上,它与整体有关,我认为一切都应分开。因此,将HTML / CSS / JS都分开。它使您的HTML更加整洁,并且我认为无需它就更易于浏览。 然后,当/如果需要进行较大的更改时,您必须有足够的空间来将内联JS转移到外部文件,或者

  • 本文向大家介绍JavaScript事件处理程序详解,包括了JavaScript事件处理程序详解的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了js事件处理程序的具体代码,供大家参考,具体内容如下 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 我已经在JList上有一个这样的自定义控件库 但是我希望Jlist有滚动条,所以我将自定义控件的超类更改为JScrollPane并将JList添加到其中。像这样的代码 好吧,如果MyClass扩展了JList,在JFrame中我可以将MouseListener添加到MyClass对象中,在mouseClick中我比较MouseEvent getSource是MyClass的一个实例并调用MyCla