Oracle Coherence中文教程二十三:使用连续查询缓存

使用连续查询缓存

虽然有可能取得时间从连贯缓存查询结果中的一个点,,并有可能以接收事件,将改变该查询的结果,连贯性提供了一个功能,它结合了与一个连续的数据流中的相关事件的查询结果在一个实时的方式保持一个最新的日期的查询结果。这种能力被称作连续查询,因为它具有相同的效果,如果想要查询的零延迟和查询被执行多次,每毫秒!点时间查询结果和事件的更多信息,请参见第相干物化成一个连续查询缓存查询结果,然后,缓存保持最新实时查询使用事件侦听器实现连续查询功能。换句话说,一个连贯性的连续查询是一个缓存的查询结果,永远不会过期。本章包含以下各节:连续查询缓存的用途连续查询缓存相干构建连续查询缓存只缓存键,或缓存键和值监听ContinuousQueryCache的使ContinuousQueryCache只读

23.1利用连续查询缓存

有几种不同的连续查询缓存一般用途类别:它是一种理想的建筑块的复杂事件处理(CEP)系统和事件关联引擎。这是理想的情况下,应用程序重复一个特定的查询,并且将受益于总是具有即时访问,查询到最新的结果。连续查询缓存类似于物化视图,和一个查询的结果使用标准NamedCacheAPI用于访问和操作,并接收该查询相关的事件持续流是非常有用的。到接近缓存类似的方式,可以使用一个连续查询缓存,因为它保持一个最新的最新的一组本地正在使用它的数据,例如特定服务器上的节点或客户机上的桌面;注意,近缓存是无效的,但实际上连续查询缓存中维护其数据的最新方式。一个例子使用的情况下是一个交易系统桌面,其中一位交易员的未结订单和所有相关的信息,必须始终保持在最新的方式。通过结合连续查询缓存相干*扩展功能,应用程序可以支持几十数千个并发用户。注意事项:连续查询缓存是非常有用的,因为它们提供了几乎所有类型的应用程序,包括基于客户端和基于服务器的应用程序的能力,很容易和有效地维护一个指定的子集到最新的本地副本更大,可能分布的高速缓存的数据集。

23.2Coherence连续查询缓存

相干实施连续查询发现在缓存访问和操作使用的地图界面:活动的所有对象的修改发生在缓存中:基于身份的的群集范围锁定在缓存中的对象:NamedCacheConcurrentMap接口扩展。查询缓存中的对象:NamedCache扩展属性查图的界面。分布式并行处理和聚合缓存中的对象:由于的

23.3构建一个连续查询缓存

有两个项目定义连续查询缓存:它是基于底层的缓存;产生子集,底层的缓存查询,连续查询缓存缓存。底层的缓存是任何连贯性高速缓存,包括另一个连续查询缓存。高速缓存通常是获得递给CacheFactory,它允许开发人员只需指定名称的缓存,它会自动配置基于应用程序的缓存配置信息,例如:NamedCachecache=CacheFactory.getCache("orders");

见附录查询是将用于相同类型的查询,例如:

例23-1连续查询缓存的查询

Filterfilter=newAndFilter(newEqualsFilter("getTrader",traderid),

newEqualsFilter("getStatus",Status.OPEN));

参见第通常情况下,查询缓存,属性查方法的例子,此交易的所有开放的行业获得一个快照:例23-2连续查询缓存中获取数据SetsetOpenTrades=cache.entrySet(filter);同样,那些相同的两片连续查询缓存构造:示例23-3构造连续查询缓存ContinuousQueryCachecacheOpenTrades=newContinuousQueryCache(cache,filter);

23.3.1清理相关的资源与ContinuousQueryCache

连续查询缓存放置一个或多个事件侦听器,其底层的缓存。如果连续查询缓存用于该应用程序的持续时间,然后清洁的资源时,该节点被关闭或以其他方式停止。但是,如果连续查询缓存仅用于一个时期,然后使用它来完成应用程序时,应用程序必须调用

23.4只缓存键,或缓存键和值

当构建一个连续查询缓存,它是可以指定缓存应该只跟踪的关键,从查询的结果,并获得只有当它们被要求从底层的缓存值。创建一个连续的,代表一个非常大的查询结果集的查询缓存这个功能可能是有用的,如果值是从来没有或很少要求。要指定唯一的键应该是高速缓存,使用构造函数允许的CacheValues属性进行配置,例如:例属性

ContinuousQueryCachecacheOpenTrades=newContinuousQueryCache(cache,filter,false);

如果有必要,也可以进行修改的CacheValues属性缓存已经被实例化后,例如:例属性

cacheOpenTrades.setCacheValues(true);

23.4.1CacheValues属性和事件监听器

如果连续查询缓存有任何标准(非精简版)的事件监听器,或者如果任何事件侦听器过滤,然后的

23.5监听ContinuousQueryCache

由于连续查询缓存本身是可观察的,它有可能为客户端在其上放置一个或多个事件侦听器。例如:例23-6连续查询缓存中添加一个监听器

ContinuousQueryCachecacheOpenTrades=newContinuousQueryCache(cache,filter);

cacheOpenTrades.addMapListener(listener);

放下一种执着,收获一种自在。放下既是一种理性抉择,也是一种豁达美。

Oracle Coherence中文教程二十三:使用连续查询缓存

相关文章:

你感兴趣的文章:

标签云: