2.9. 客户端监听程序


当数据网格集群中添加、删除或修改数据时,客户端监听程序都会提供通知。

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

@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 来处理这些事件的监听程序可减少数据网格可用的 CPU,并减慢所有其他操作的速度。

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

过滤监听程序事件

如果在每个写入操作上调用监听程序,Data Grid 会产生大量事件,在集群内部和外部客户端创建网络流量。它都取决于使用各个侦听器注册的客户端、它们触发的事件类型以及数据网格集群上的数据更改方式。

例如,如果您有 10 个客户端注册了可发出 10 个事件的监听程序,则数据网格服务器通过网络发送 100 个事件。

您可以使用自定义过滤器提供 Data Grid Server,以减少客户端的流量。过滤器允许数据网格服务器首先处理事件,并确定是否将其转发到客户端。

持续查询和监听程序

持续查询可让您接收匹配条目的事件,并提供部署客户端监听程序和过滤监听器事件的替代选择。当然查询需要额外的处理成本,但如果您已经索引缓存并执行查询,则可能需要使用持续查询而不是客户端监听器。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat