2.9. 客户端监听程序


每当 Data Grid 集群中添加、删除或修改数据时,客户端监听器都会提供通知。

例如,每当温度在给定位置更改时,以下实现会触发事件:

@ClientListener
public class TemperatureChangesListener {
   private String location;

   TemperatureChangesListener(String location) {
      this.location = location;
   }

   @ClientCacheEntryCreated
   public void created(ClientCacheEntryCreatedEvent event) {
      if(event.getKey().equals(location)) {
         cache.getAsync(location)
               .whenComplete((temperature, ex) ->
                     System.out.printf(">> Location %s Temperature %s", location, temperature));
      }
   }
}
Copy to Clipboard Toggle word wrap

在 Data Grid 集群中添加监听程序会为您的部署添加性能注意事项。

对于嵌入式缓存,监听器使用与 Data Grid 相同的 CPU 内核。接收许多事件并使用大量 CPU 来处理这些事件的监听程序可减少 Data Grid 可用的 CPU,并减慢所有其他操作的速度。

对于远程缓存,Data Grid 服务器使用内部进程来触发客户端通知。Data Grid Server 将事件从主所有者节点发送到注册监听程序的节点,然后再将其发送到客户端。Data Grid Server 还包含一个后端机制,在客户端监听器处理事件过慢时延迟写操作,以延迟写操作。

过滤监听程序事件

如果每个写入操作调用监听程序,Data Grid 可以生成大量事件,在集群内和外部客户端创建网络流量。它都取决于每个监听器注册多少个客户端、它们触发的事件类型以及您的 Data Grid 集群上的数据变化。

作为远程缓存的示例,如果您有十个客户端注册了 10 个事件,则 Data Grid Server 会在网络间发送 100 个事件。

您可以使用自定义过滤器为 Data Grid Server 提供自定义过滤器,以减少到客户端的流量。过滤器允许 Data Grid Server 先处理事件,并确定是否将它们转发到客户端。

持续查询和监听程序

持续查询允许您接收匹配条目的事件,并提供部署客户端监听程序和过滤监听程序事件的替代选择。课程查询具有额外的处理成本,但如果您已经使用持续查询而不是客户端侦听器进行索引和执行查询,则需要考虑这些处理成本。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat