Oracle Coherence中文教程十二:配置高速缓存

配置高速缓存

本章提供了详细说明如何配置高速缓存在缓存配置部署描述符。请参阅附录B缓存配置元素,为一个完整的描述符中的所有元素的参考。此外,请参见第17章,,为各种样品的缓存配置的高速缓存配置。

本章包含以下各节:

    概观
    定义缓存映射
    定义缓存计划
    使用计划继承
    使用缓存计划属性
    使用参数宏

12.1概述

缓存配置部署描述符中配置缓存。默认情况下,coherence尝试加载第一coherence-cache-config.xml中被发现在classpath中部署描述符。Coherence 包括在coherence.jar包中的coherence-cache-config.xml 文件。要使用不同的coherence-cache-config.xml文件,该文件必须位于classpath中,之前必须加载的coherence.jar;否则,样本缓存配置部署描述符。可用于指定缓存配置部署描述符的替代方法,请参阅指定缓存配置文件” 

使缓存可从应用程序代码独立定义缓存配置描述符。在运行时,应用程序通过使用描述符中定义的名称指的是一个高速缓存的高速缓存的一个实例。这允许应用程序代码被写入独立的缓存定义。基于这种方法,可以修改缓存定义而不进行任何更改应用程序代码。这种方法也最大化缓存高清重用。

该架构定义的缓存配置描述符的的coherence-cache-config.xsd的文件,其中coherence-cache-config-base.xsd的文件,反过来,含蓄coherence-config-base.xsd的文件。此文件位于在根的coherence.jar文件。高速缓存配置部署描述符包括两个主要元素,本章介绍的: <caching-scheme-mapping>元素, <caching-schemes>的元素。这些元素用于定义高速缓存方案,并定义映射到高速缓存方案的缓存名称。

12.2定义缓存映射

缓存映射缓存名称的缓存方案定义。映射提供了一个电平之间的分离的应用程序和底层的缓存定义。可以根据需要进行更改,而无需更改应用程序代码缓存实现分离。高速缓存映射也可用于设置被施加到底层的缓存方案定义的初始化参数。

缓存映射定义使用一个<cache-mapping>元素内<cache-scheme-mapping>节点。可以创建任意数量的缓存映射。必须包括缓存缓存映射名称和计划缓存名称映射名称。查看缓存映射详细的参考的<cache-mappings>元素。

12.2.1使用一对一缓存映射

映射到一个缓存的缓存方案定义一个特定的缓存名称。一个应用程序必须提供确切的名称映射中指定使用缓存。例12-1创建一个缓存映射,分布式缓存名称的例子映射到分布式缓存方案定义方案名称。

12-1样品到一个缓存映射

<?xml version="1.0"?>

<cache-config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

   xmlns="http://xmlns.oracle.com/coherence/coherence-cache-config"

   xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-cache-config

   coherence-cache-config.xsd">

   <caching-scheme-mapping>

      <cache-mapping>

         <cache-name>example</cache-name>

         <scheme-name>distributed</scheme-name>

      </cache-mapping>

   </caching-scheme-mapping>

   <caching-schemes>

      <distributed-scheme>

         <scheme-name>distributed</scheme-name>

      </distributed-scheme>

   </caching-schemes>

</cache-config>

12.2.2使用缓存名称模式映射

缓存名称模式映射允许应用程序指定缓存名时使用模式。模式使用星号()通配符。缓存名称模式减轻应用程序不必知道确切名称的缓存。例12-2创建二级缓存映射。第一个映射使用通配符(*) ,以任何缓存名称映射到分布式缓存方案定义分布方案名称。第二映射缓存名称模式方案名称的缓存方案定义帐户帐户*分布。

12-2采样缓存名称模式映射

<?xml version="1.0"?>

<cache-config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

   xmlns="http://xmlns.oracle.com/coherence/coherence-cache-config"

   xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-cache-config

   coherence-cache-config.xsd">

   <caching-scheme-mapping>

      <cache-mapping>

         <cache-name>*</cache-name>

         <scheme-name>distributed</scheme-name>

      </cache-mapping>

      <cache-mapping>

         <cache-name>account-*</cache-name>

         <scheme-name>account-distributed</scheme-name>

      </cache-mapping>

   </caching-scheme-mapping>

   <caching-schemes>

      <distributed-scheme>

         <scheme-name>distributed</scheme-name>

      </distributed-scheme>

      <distributed-scheme>

         <scheme-name>account-distributed</scheme-name>

      </distributed-scheme>

   </caching-schemes>

</cache-config>

对于第一个映射,应用程序可以使用任何名称创建缓存时的名称映射到缓存方案定义分布方案名称。第二个映射需要一个应用程序使用模式,当指定缓存名称。在这种情况下,应用程序必须使用账户的名称前的前缀例如,一个应用程序,指定帐户,逾期缓存名使用帐户分配方案名称的缓存方案定义。

12.2.3在映射指定初始化参数

缓存映射支持使用初始化参数覆盖底层的缓存方案定义的属性。通常使用的初始化参数,以便高速缓存方案定义重用。在这种情况下,多个高速缓存名称映射到相同的缓存方案定义,但每个映射覆盖缓存属性。

初始化参数定义使用<init-param>元素内<init-params>节点。该<init-param>元素必须包括<param-name>元素后, <param-value>元素。可以指定任意数量的参数。见初始化参数<init-param>元素进行了详细的参考。

12-3创建两个缓存映射,映射到相同的缓存方案定义。然而,第一次映射覆盖回底层的缓存方案定义的大小限制属性,而第二个映射使用背面配置底层的缓存方案定义的大小限制。

12-3初始化参数缓存映射

<?xml version="1.0"?>

<cache-config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

   xmlns="http://xmlns.oracle.com/coherence/coherence-cache-config"

   xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-cache-config

   coherence-cache-config.xsd">

   <caching-scheme-mapping>

      <cache-mapping>

         <cache-name>*</cache-name>

         <scheme-name>distributed</scheme-name>

         <init-params>

            <init-param>

               <param-name>back-size-limit</param-name>

               <param-value>8MB</param-value>

            </init-param>

         </init-params>

      </cache-mapping>

      <cache-mapping>

         <cache-name>account-*</cache-name>

         <scheme-name>distributed</scheme-name>

      </cache-mapping>

   </caching-scheme-mapping>

   ...

</cache-config>

缓存方案属性如何配置的高速缓存方案定义更多信息,请参阅使用缓存计划属性” 

12.3定义缓存计划

用于定义应用程序可用的高速缓存,高速缓存方案。缓存方案提供声明的机制,允许独立的应用程序使用它们来定义缓存。这个定义从应用程序缓存和删除的责任,允许缓存来改变,而无需改变应用程序的代码。缓存计划也促进缓存定义重用,让许多应用程序使用同一缓存定义。

定义缓存计划内<caching-schemes>元素。每个高速缓存类型(分发,复制等)具有一个相应的计划的元素和属性,用于定义该类型的高速缓存。缓存计划也可以嵌套,如近缓存允许进一步定制和复合高速缓存。请参阅缓存计划详细的参考的<caching-schemes>元素。

本节介绍如何定义最常用的缓存类型的缓存方案,并不代表连贯性提供的缓存类型的全套。发现在本指南定义额外的缓存类型的缓存方案的说明,并讨论他们支持的功能的一部分。在本节包括以下主题:

    定义分布式缓存计划
    定义复制缓存计划
    定义乐观缓存计划
    定义本地高速缓存计划
    定义接近缓存计划

12.3.1定义分布式缓存计划


<distributed-scheme>元素是用来定义分布式高速缓存。分布式的缓存采用了分布式缓存服务实例(分区) 。可以定义任意数量的分布的高速缓存在高速缓存中的配置文件。参见分布式方案进行了详细的参考的<distributed-scheme>元素。

12-4定义了一个基本的分布式缓存,采用分布式方案名称,并映射到高速缓存名称的例子。缓存服务器节点上启动该服务<autostart>元素设置为true 

12-4样品分布式缓存定义

<?xml version="1.0"?>

<cache-config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

   xmlns="http://xmlns.oracle.com/coherence/coherence-cache-config"

   xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-cache-config

   coherence-cache-config.xsd">

   <caching-scheme-mapping>

      <cache-mapping>

         <cache-name>example</cache-name>

         <scheme-name>distributed</scheme-name>

      </cache-mapping>

   </caching-scheme-mapping>

   <caching-schemes>

      <distributed-scheme>

         <scheme-name>distributed</scheme-name>

         <backing-map-scheme>

            <local-scheme/>

         </backing-map-scheme>

         <autostart>true</autostart>

      </distributed-scheme>

   </caching-schemes>

</cache-config>

分布式缓存在该示例中,定义了一个本地的高速缓存被用来作为底层映射。参见第13章, 实现存储和备份的地图配置备份地图的更多信息。

12.3.2定义复制缓存计划

<replicated-scheme>元素是用来定义复制缓存。复制缓存的利用复制的缓存服务实例。可以定义任意数量的复制缓存,缓存中的配置文件。请参阅复制方案进行了详细的参考的<replicated-scheme>元素。

12-5定义了一个基本的复制缓存作为该计划的名称,使用复制,并映射到高速缓存名称的例子。缓存服务器节点上启动该服务<autostart>元素设置为true 

12-5样品复制缓存定义

<?xml version="1.0"?>

<cache-config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

   xmlns="http://xmlns.oracle.com/coherence/coherence-cache-config"

   xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-cache-config

   coherence-cache-config.xsd">

   <caching-scheme-mapping>

      <cache-mapping>

         <cache-name>example</cache-name>

         <scheme-name>replicated</scheme-name>

      </cache-mapping>

   </caching-scheme-mapping>

   <caching-schemes>

      <replicated-scheme>

         <scheme-name>replicated</scheme-name>

         <backing-map-scheme>

            <local-scheme/>

         </backing-map-scheme>

         <autostart>true</autostart>

      </replicated-scheme>

   </caching-schemes>

</cache-config>

在这个例子中,复制的缓存定义要用作底层映射中的本地缓存。参见第13章, 实现存储和备份的地图配置备份地图的更多信息。

12.3.3定义乐观缓存计划

<optimistic-scheme>元素是用来定义乐观缓存。乐观的缓存利用一个乐观的缓存服务实例。可以定义任意数量的乐观缓存,缓存中的配置文件。见乐观方案详细的参考的<optimistic-scheme>元素。

12-6定义了一个基本乐观的缓存使用乐观作为该计划的名称映射到高速缓存名称的例子。缓存服务器节点上启动该服务<autostart>元素设置为true 

12-6样品乐观缓存定义

<?xml version="1.0"?>

<cache-config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

   xmlns="http://xmlns.oracle.com/coherence/coherence-cache-config"

   xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-cache-config

   coherence-cache-config.xsd">

   <caching-scheme-mapping>

      <cache-mapping>

         <cache-name>example</cache-name>

         <scheme-name>optimistic</scheme-name>

      </cache-mapping>

   </caching-scheme-mapping>

   <caching-schemes>

      <optimistic-scheme>

         <scheme-name>optimistic</scheme-name>

         <backing-map-scheme>

            <local-scheme/>

         </backing-map-scheme>

         <autostart>true</autostart>

      </optimistic-scheme>

   </caching-schemes>

</cache-config>

乐观缓存在该示例中,定义了一个本地的高速缓存被用来作为底层映射。参见第13章, 实现存储和备份的地图配置备份地图的更多信息。

12.3.4定义本地缓存计划

<local-scheme>元素是用来定义本地缓存。本地缓存一般都是嵌套在其他缓存的计划之内,比如前附近的一个缓存层。因 此,该元素可以出现任何下列元素: <caching-schemes> <distributed-scheme> <replicated-scheme> <optimistic-scheme>作为一个子元素, <near-scheme> ,溢出方案, <read-write-backing-map-scheme> <backing-map-scheme> 。请参阅本地计划详细的参考的<local-scheme>元素。

12-7定义了一个局部作为该计划的名称,使用本地缓存和映射到高速缓存名称的例子。

注意事项:
通常不使用本地缓存作为一个独立的缓存服务器上的缓存,而且,如果缓存服务器无法启动的唯一缓存缓存配置文件中的定义是一个本地缓存。

12-7样品本地缓存定义

<?xml version="1.0"?>

<cache-config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

   xmlns="http://xmlns.oracle.com/coherence/coherence-cache-config"

   xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-cache-config

   coherence-cache-config.xsd">

  <caching-scheme-mapping>

    <cache-mapping>

      <cache-name>example</cache-name>

      <scheme-name>local</scheme-name>

    </cache-mapping>

  </caching-scheme-mapping>

  <caching-schemes>

    <local-scheme>

      <scheme-name>local</scheme-name>

      <eviction-policy>LRU</eviction-policy>

      <high-units>32000</high-units>

      <low-units>10</low-units>

      <unit-calculator>FIXED</unit-calculator>

      <expiry-delay>10ms</expiry-delay>

    </local-scheme>

  </caching-schemes>

</cache-config>

请参阅定义的C + +客户端的本地缓存配置本地缓存。 NET客户端Oracle Coherence的客户端指南,使用时的Coherence延长。

12.3.4.1控制生长的本地缓存

如表12-0所示,的<local-scheme>提供一些可选的子元素控制缓存的生长的。<low-units><high-units>的子元素,例如,限制了高速缓存的大小。当高速缓存达到其最大允许大小修剪到指定的尺寸更小,选择哪些条目驱逐到指定的驱逐政策( <eviction-policy> ) 。的条目和计量的计算单位,由该计划的单位计算器( <unit-calculator> )的大小限制。

本地缓存使用的缓存配置<expiry-delay>元素的量进行配置的项目可能会留在缓存过期之前的时间。客户端线程同时访问缓存,发起这些行动。达到因此, <expiry-delay>可能,但不启动,直到客户端线程访问缓存。例如,如果的<expiry-delay>值被设定为10秒(10秒)和一个客户端访问的高速缓存在15秒后,然后届满后15秒内发生。

注意事项:
客户端线程执行驱逐,而不是一个后台线程。此外,到期延迟的参数( cExpiryMillis )的被定义为整数,以毫秒为单位。因此,最大的时间量不能超过Integer.MAX_VALUE的毫秒(2147483647)或约24天。

12.3.5定义近缓存计划

<near-scheme>元素是用来定义一个附近的缓存。甲附近的高速缓存是一个复合的高速缓存,因为它包含两个高速缓存:的<front-scheme>元素是用来定义一个本地(第一层)的高速缓存,是用来定义的<back-scheme>元件(背面层)缓存。通常情况下,本地高速缓存用于前端层,但是,前层也可以使用基于Java对象的计划(使用<class-scheme>的)和非JVM堆基于高速缓存(使用外部计划><paged-external-scheme> ) 。背层缓存描述由<back-scheme>元素。背层缓存可以是任何集群的缓存类型以及任何独立缓存类型。见近期计划详细的参考的<near-scheme>元素。

12-8定义了附近的一个缓存使用附近作为该计划的名称映射到高速缓存名称的例子。前层是一个本地的高速缓存和背面层是一个分布式的缓存。

注意事项:
近缓存用于缓存客户端,通常不用于缓存服务器上,而且,如果不启动缓存服务器的唯一缓存缓存配置文件的定义,是一个近缓存。

12-8样品接近缓存定义

<?xml version="1.0"?>

<cache-config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

   xmlns="http://xmlns.oracle.com/coherence/coherence-cache-config"

   xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-cache-config

   coherence-cache-config.xsd">

   <caching-scheme-mapping>

      <cache-mapping>

         <cache-name>example</cache-name>

         <scheme-name>near</scheme-name>

      </cache-mapping>

   </caching-scheme-mapping>

   <caching-schemes>

      <near-scheme>

         <scheme-name>near</scheme-name>

         <front-scheme>

            <local-scheme/>

         </front-scheme>

         <back-scheme>

            <distributed-scheme>

               <scheme-name>near-distributed</scheme-name>

               <backing-map-scheme>

                  <local-scheme/>

               </backing-map-scheme>

               <autostart>true</autostart>

            </distributed-scheme>

         </back-scheme>

      </near-scheme>

   </caching-schemes>

</cache-config>

参见定义近缓存C + +客户端定义近缓存。 NET客户端Oracle Coherence的客户端指南,使用时的连贯*延长。

12.3.5.1近缓存失效策略

近缓存<invalidation-strategy>是一个可选的子元素。用于指定一个无效策略的前层和背层的目的是如何保持同步。附近的高速缓存可以被配置来听某些事件在后面缓存和自动更新或在前面缓存条目失效。根据回缓存实现的接口,近缓存无效背面高速缓存中已经改变了由其他进程前缓存条目提供了四种不同的策略。

12-1描述了无效的战略。你可以找到更多信息失效策略和的read-through/write-through在第14章中的方法, 缓存数据源。 

12-1近缓存失效策略

策略名称

说明

None

该策略指示缓存不听无效事件。这是最好的选择为原料的性能和可扩展性的业务需求时,允许使用的数据,这可能不是一个绝对电流。可以保证数据的新鲜度,使用足够简短的前缓存驱逐策略。

Present

此战略指导近缓存听回缓存事件只涉及到目前项目在前面缓存。这种策略效果最好的前缓存时,每个实例包含不同的子集,相对于其他前缓存实例(例如,粘数据访问模式)的数据。

All

此战略指导近缓存听所有回缓存事件。这种策略是最优的分层访问模式为读重有显着的前端缓存的不同实例之间的重叠。

Auto

此战略指导近缓存现状与所有战略的基础上的高速缓存统计之间自动切换。

12.4使用计划继承

计划继承允许继承另一个计划,并有选择地重写继承计划的属性需要缓存计划可创造的。这种灵活性使缓存方案可以很容易地维护和促进缓存计划重用。的<scheme-ref>元件内使用的高速缓存方案定义的名称指定的高速缓存方案继承。

12-9创建两个分布式缓存方案是等价的。第一个显式配置被用于底层映射的本地计划。使用第二个定义的<scheme-ref>元素,继承本地计划名为LocalSizeLimited的:

12-9使用缓存计划参考
<distributed-scheme>

  <scheme-name>DistributedInMemoryCache</scheme-name>

  <service-name>DistributedCache</service-name>

  <backing-map-scheme>

    <local-scheme>

      <eviction-policy>LRU</eviction-policy>

      <high-units>1000</high-units>

      <expiry-delay>1h</expiry-delay>

    </local-scheme>

  </backing-map-scheme>

</distributed-scheme>

<distributed-scheme>

  <scheme-name>DistributedInMemoryCache</scheme-name>

  <service-name>DistributedCache</service-name>

  <backing-map-scheme>

    <local-scheme>

      <scheme-ref>LocalSizeLimited</scheme-ref>

    </local-scheme>

  </backing-map-scheme>

</distributed-scheme>

<local-scheme>

  <scheme-name>LocalSizeLimited</scheme-name>

  <eviction-policy>LRU</eviction-policy>

  <high-units>1000</high-units>

  <expiry-delay>1h</expiry-delay>

</local-scheme>

在例12-9 ,第一分布式方案定义更紧凑,但是,第二个定义提供能力轻松地重用的LocalSizeLimited计划,在多个方案中。例12-10显示多个计划,重用相同的LocalSizeLimited的基地定义和覆盖届满延迟。

12-10多个缓存计划使用计划继承
<distributed-scheme>

  <scheme-name>DistributedInMemoryCache</scheme-name>

  <service-name>DistributedCache</service-name>

  <backing-map-scheme>

    <local-scheme>

      <scheme-ref>LocalSizeLimited</scheme-ref>

    </local-scheme>

  </backing-map-scheme>

</distributed-scheme>

<replicated-scheme>

  <scheme-name>ReplicatedInMemoryCache</scheme-name>

  <service-name>ReplicatedCache</service-name>

  <backing-map-scheme>

    <local-scheme>

      <scheme-ref>LocalSizeLimited</scheme-ref>

      <expiry-delay>10m</expiry-delay>

    </local-scheme>

  </backing-map-scheme>

</replicated-scheme>

<local-scheme>

  <scheme-name>LocalSizeLimited</scheme-name>

  <eviction-policy>LRU</eviction-policy>

  <high-units>1000</high-units>

  <expiry-delay>1h</expiry-delay>

</local-scheme>

12.5使用缓存计划属性

缓存方案属性修改缓存行为,需要一个特定的应用程序。每个缓存方案类型包含它自己的一套属性是有效的缓存。高速缓存属性设置在高速缓存方案定义,使用各自的要素。见附录, 缓存配置元素所支持的每个高速缓存的方案类型的所有属性的参考。

许多缓存属性使用默认值,除非内的缓存方案定义明确给出一个不同的值。集群缓存(分发,复制和乐观)使用指定的默认值由各自的缓存服务定义。作战部署描述符中定义的缓存服务。虽然它使用一个运算覆盖文件的属性值是可以改变的,缓存性能是最常见的设置的缓存方案定义内。

12-11创建一个基本的分布式缓存方案,服务线程计数的财产和请求超时属性设置。此外,当地的计划,用于支持地图设置属性的本地高速缓存的大小限制。本指南被发现在整个使用缓存计划性质的说明,并进行了讨论,他们支持的功能的一部分。

12-11设置高速缓存属性

<?xml version="1.0"?>

<cache-config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

   xmlns="http://xmlns.oracle.com/coherence/coherence-cache-config"

   xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-cache-config

   coherence-cache-config.xsd">

   <caching-scheme-mapping>

      <cache-mapping>

         <cache-name>example</cache-name>

         <scheme-name>DistributedInMemoryCache</scheme-name>

      </cache-mapping>

   </caching-scheme-mapping>

   <caching-schemes>

      <distributed-scheme>

         <scheme-name>DistributedInMemoryCache</scheme-name>

         <service-name>DistributedCache</service-name>

         <thread-count>4</thread-count>

         <request-timeout>60s</request-timeout>

         <backing-map-scheme>

            <local-scheme>

               <scheme-ref>LocalSizeLimited</scheme-ref>

            </local-scheme>

         </backing-map-scheme>

      </distributed-scheme>

      <local-scheme>

         <scheme-name>LocalSizeLimited</scheme-name>

         <eviction-policy>LRU</eviction-policy>

         <high-units>1000</high-units>

         <expiry-delay>1h</expiry-delay>

      </local-scheme>

   </caching-schemes>

</cache-config>

12.6使用参数宏

缓存配置部署描述符,以尽量减少自定义编码,使规范的常用属性类的构造函数的参数配置时,支持参数宏。宏应该在大括号内输入如下图所示,没有任何报价或空格。

12-2说明了可指定的参数宏:

12-2缓存配置参数的宏

<param-type>

<param-value>

Description

用于通过当前缓存名称作为构造函数参数例如:

java.lang.String

{cache-name}

<class-name>com.mycompany.cache.CustomCacheLoader

</class-name> 

<init-params> 

  <init-param> 

    <param-type>java.lang.String</param-type>  

    <param-value>{cache-name}</param-value> 

  </init-param> 

</init-params>

java.lang.ClassLoader

{class-loader}

<class-name>com.mycompany.cache.CustomCacheLoader

</class-name>

<init-params> 

  <init-param> 

    <param-type>java.lang.ClassLoader</param-type>

    <param-value>{class-loader}</param-value> 

  </init-param> 

</init-params>

com.tangosol.net.BackingMapManagerContext

{manager-context}

<class-name>com.mycompany.cache.CustomCacheLoader

</class-name>

<init-params> 

  <init-param> 

    <param-type>

      com.tangosol.net.BackingMapManagerContext

    </param-type>

    <param-value>{manager-context}</param-value> 

  </init-param> 

</init-params>

{scheme-ref}

local-scheme

实例化由<class-scheme><local-scheme><file-scheme>与指定<scheme-name>值定义的对象,并使用它作为构造函数参数。例如:

<class-scheme>

  <scheme-name>dbconnection</scheme-name>

  <class-name>com.mycompany.dbConnection</class-name> 

  <init-params> 

    <init-param> 

      <param-name>driver</param-name> 

      <param-type>String</param-type>

      <param-value>org.gjt.mm.mysql.Driver

      </param-value>

    </init-param> 

    <init-param> 

      <param-name>url</param-name> 

      <param-type>String</param-type>

      <param-value>

         jdbc:mysql://dbserver:3306/companydb

      </param-value>

    </init-param> 

    <init-param> 

      <param-name>user</param-name> 

      <param-type>String</param-type>  

      <param-value>default</param-value> 

    </init-param> 

    <init-param> 

      <param-name>password</param-name>

      <param-type>String</param-type>

      <param-value>default</param-value> 

    </init-param> 

  </init-params> 

</class-scheme> 

... 

<class-name>com.mycompany.cache.CustomCacheLoader

</class-name>

  <init-params> 

    <init-param> 

      <param-type>{scheme-ref}</param-type>  

      <param-value>dbconnection</param-value> 

    </init-param> 

  </init-params>

{cache-ref}

cache name

用于为指定的高速缓存的名称,得到NamedCache参考。考虑下面的配置示例:

<cache-config> 

  <caching-scheme-mapping>

    <cache-mapping>

      <cache-name>boston-*</cache-name>  

      <scheme-name>wrapper</scheme-name>

      <init-params>

        <init-param> 

          <param-name>delegate-cache-name</param-name>

          <param-value>london-*</param-value>

        </init-param> 

      </init-params> 

    </cache-mapping>

    <cache-mapping> 

      <cache-name>london-*</cache-name>

      <scheme-name>partitioned</scheme-name>

    </cache-mapping> 

  </caching-scheme-mapping>

  <caching-schemes> 

    <class-scheme> 

      <scheme-name>wrapper</scheme-name> 

      <class-name>

         com.tangosol.net.cache.WrapperNamedCache

      </class-name> 

      <init-params> 

        <init-param> 

          <param-type>{cache-ref}</param-type>

          <param-value>{delegate-cache-name}

          </param-value>

        </init-param> 

        <init-param> 

          <param-type>string</param-type>

          <param-value>{cache-name}</param-value> 

        </init-param> 

      </init-params> 

    </class-scheme>

    <distributed-scheme> 

      <scheme-name>partitioned</scheme-name>

      <service-name>partitioned</service-name>

      <backing-map-scheme> 

        <local-scheme> 

          <unit-calculator>BINARY</unit-calculator>

        </local-scheme> 

      </backing-map-scheme>

      <autostart>true</autostart> 

    </distributed-scheme> 

  </caching-schemes> 

</cache-config>

CacheFactory.getCache“london-test”)调用将导致在一个标准的分区的高速缓存的参考。相反,CacheFactory.getCache波士顿测试)调用的委托缓存名称参数值解决伦敦测试,将构建一个实例WrapperNamedCache,委托给NamedCache的由CacheFactory.getCache返回(伦敦测试)调用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值