第 4 章 配置数据网格缓存
借助 Data Grid,您可以以声明性和编程方式定义用于缓存的属性和选项。
声明性配置使用遵循 Data Grid 模式的 XML 文件。另一方面,编程配置使用 Data Grid API。
在大多数情况下,您可以使用声明性配置作为缓存定义的起点。在运行时,您可以以编程方式配置缓存来调优设置或指定附加属性。但是,Data Grid 提供灵活性,以便您可以选择声明性、编程或两者的组合。
4.1. 声明性配置
您可以通过在 infinispan.xml
中定义属性来配置数据网格缓存。
以下示例显示了 Data Grid 配置的基本结构:
<infinispan> 1 <cache-container default-cache="local"> 2 <transport stack="udp" cluster="mycluster"/> 3 <local-cache name="local"/> 4 <invalidation-cache name="invalidation"/> 5 <replicated-cache name="replicated"/> 6 <distributed-cache name="distributed"/> 7 </cache-container> </infinispan>
4.1.1. 缓存配置模板
借助 Data Grid,您可以定义可应用到多个缓存定义的配置模板,或用作复杂配置的基础。
例如,以下配置包含本地缓存的配置模板:
<infinispan> <cache-container default-cache="local"> 1 <local-cache-configuration name="local-template"> 2 <expiration interval="10000" lifespan="10" max-idle="10"/> </local-cache-configuration> <local-cache name="local" configuration="local-template" /> 3 </cache-container> </infinispan>
配置模板的继承
配置模板也可以从其他模板继承,以扩展和覆盖设置。
配置模板继承是分级。要使子配置模板从父级继承,您必须在父模板后面包含它。
以下是配置模板继承的示例:
<infinispan> <cache-container default-cache="local"> <local-cache-configuration name="base-template"> 1 <expiration interval="10000" lifespan="10" max-idle="10"/> </local-cache-configuration> <local-cache-configuration name="extended-template" configuration="base-template"> 2 <expiration lifespan="20"/> <memory> <object size="2000"/> </memory> </local-cache-configuration> <local-cache name="local" configuration="base-template" /> 3 <local-cache name="local-bounded" configuration="extended-template" /> 4 </cache-container> </infinispan>
对于具有多个值的元素(如 属性 )而言,配置模板继承是额外的
。从父配置生成子配置合并值。
例如,& lt;property value_x="foo" />
; 在父配置中与 < property value_y="bar" />
合并,以便在子配置中生成 < ;property value_x="foo" value_y="bar" />
。
4.1.2. 缓存配置通配符
您可以使用通配符将缓存定义与配置模板匹配。
<infinispan> <cache-container> <local-cache-configuration name="basecache*"> 1 <expiration interval="10500" lifespan="11" max-idle="11"/> </local-cache-configuration> <local-cache name="basecache-1"/> 2 <local-cache name="basecache-2"/> 3 </cache-container> </infinispan>
如果缓存名称与多个通配符匹配,则数据网格会抛出异常。
4.1.3. 多个配置文件
Data Grid 支持 XML 包含(XInclude),允许您在多个文件中分割配置。
例如,以下配置使用 XInclude :
<infinispan xmlns:xi="http://www.w3.org/2001/XInclude">
<cache-container default-cache="cache-1">
<xi:include href="local.xml" /> 1
</cache-container>
</infinispan>
- 1
- 包括一个包含以下缓存定义的
local.xml
文件:<local-cache name="mycache"/>
如果要将模式用于包含的片段,请使用 infinispan-config-fragment-11.0.xsd
模式:
include-with-schema.xml
<local-cache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:infinispan:config:11.0 https://infinispan.org/schemas/infinispan-config-fragment-11.0.xsd" xmlns="urn:infinispan:config:11.0" name="mycache"/>
Data Grid 配置只提供对 XInclude 规格的最小支持。例如,您无法使用 xpointer
属性,xi:fallback
元素、文本处理或内容协商。
参考