3.2. 添加缓存模板
Data Grid 模式包括可用于创建模板的 *-cache-configuration
元素。然后,您可以多次使用相同的配置创建缓存。
流程
- 打开 Data Grid 配置进行编辑。
-
使用适当的
*-cache-configuration
元素或对象添加缓存配置到缓存管理器。 - 保存并关闭您的数据网格配置。
缓存模板示例
XML
<infinispan> <cache-container> <distributed-cache-configuration name="my-dist-template" mode="SYNC" statistics="true"> <encoding media-type="application/x-protostream"/> <memory max-count="1000000" when-full="REMOVE"/> <expiration lifespan="5000" max-idle="1000"/> </distributed-cache-configuration> </cache-container> </infinispan>
JSON
{ "infinispan" : { "cache-container" : { "distributed-cache-configuration" : { "name" : "my-dist-template", "mode": "SYNC", "statistics": "true", "encoding": { "media-type": "application/x-protostream" }, "expiration" : { "lifespan" : "5000", "max-idle" : "1000" }, "memory": { "max-count": "1000000", "when-full": "REMOVE" } } } } }
YAML
infinispan: cacheContainer: distributedCacheConfiguration: name: "my-dist-template" mode: "SYNC" statistics: "true" encoding: mediaType: "application/x-protostream" expiration: lifespan: "5000" maxIdle: "1000" memory: maxCount: "1000000" whenFull: "REMOVE"
3.2.1. 从模板创建缓存
从配置模板创建缓存。
Data Grid Console 中的 Cache 模板 菜单提供了远程缓存的模板。
先决条件
- 在缓存管理器中至少添加一个缓存模板。
流程
- 打开 Data Grid 配置进行编辑。
-
指定缓存使用
configuration
属性或字段继承的模板。 - 保存并关闭您的数据网格配置。
从模板继承的缓存配置
XML
<distributed-cache configuration="my-dist-template" />
JSON
{ "distributed-cache": { "configuration": "my-dist-template" } }
YAML
distributedCache: configuration: "my-dist-template"
3.2.2. 缓存模板继承
缓存配置模板可以从其他模板继承以扩展和覆盖设置。
缓存模板继承为分级。要使子配置模板从父模板继承,您必须在父模板后面包含它。
另外,对于具有多个值的元素,模板继承是可添加的。从另一个模板继承的缓存会合并来自该模板的值,这些缓存可覆盖属性。
模板继承示例
XML
<infinispan> <cache-container> <distributed-cache-configuration name="base-template"> <expiration lifespan="5000"/> </distributed-cache-configuration> <distributed-cache-configuration name="extended-template" configuration="base-template"> <encoding media-type="application/x-protostream"/> <expiration lifespan="10000" max-idle="1000"/> </distributed-cache-configuration> </cache-container> </infinispan>
JSON
{ "infinispan" : { "cache-container" : { "caches" : { "base-template" : { "distributed-cache-configuration" : { "expiration" : { "lifespan" : "5000" } } }, "extended-template" : { "distributed-cache-configuration" : { "configuration" : "base-template", "encoding": { "media-type": "application/x-protostream" }, "expiration" : { "lifespan" : "10000", "max-idle" : "1000" } } } } } } }
YAML
infinispan: cacheContainer: caches: base-template: distributedCacheConfiguration: expiration: lifespan: "5000" extended-template: distributedCacheConfiguration: configuration: "base-template" encoding: mediaType: "application/x-protostream" expiration: lifespan: "10000" maxIdle: "1000"
3.2.3. 缓存模板通配符
您可以添加通配符来缓存配置模板名称。如果您创建名称与通配符匹配的缓存,Data Grid 会应用配置模板。
如果缓存名称匹配多个通配符,则数据网格会抛出异常。
模板通配符示例
XML
<infinispan> <cache-container> <distributed-cache-configuration name="async-dist-cache-*" mode="ASYNC" statistics="true"> <encoding media-type="application/x-protostream"/> </distributed-cache-configuration> </cache-container> </infinispan>
JSON
{ "infinispan" : { "cache-container" : { "distributed-cache-configuration" : { "name" : "async-dist-cache-*", "mode": "ASYNC", "statistics": "true", "encoding": { "media-type": "application/x-protostream" } } } } }
YAML
infinispan: cacheContainer: distributedCacheConfiguration: name: "async-dist-cache-*" mode: "ASYNC" statistics: "true" encoding: mediaType: "application/x-protostream"
使用上述示例,如果您创建一个名为 "async-dist-cache-prod" 的缓存,则 Data Grid 会使用 async-dist-cache-*
模板的配置。
3.2.4. 从多个 XML 文件缓存模板
将缓存配置模板分成多个 XML 文件,使其具有粒度灵活性并通过 XML 包含(排除)进行引用。
数据网格为 XInclude 规格提供最少支持。这意味着您无法使用 xpointer
属性、xi:fallback
元素、文本处理或内容协商。
您还必须将 xmlns:xi="http://www.w3.org/2001/XInclude"
命名空间添加到 infinispan.xml
中,以使用 XInclude。
Xinclude 缓存模板
<infinispan xmlns:xi="http://www.w3.org/2001/XInclude"> <cache-container default-cache="cache-1"> <!-- References files that contain cache configuration templates. --> <xi:include href="distributed-cache-template.xml" /> <xi:include href="replicated-cache-template.xml" /> </cache-container> </infinispan>
数据网格还提供 infinispan-config-fragment-13.0.xsd
模式,您可将其用于配置片段。
配置片段模式
<local-cache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:infinispan:config:13.0 https://infinispan.org/schemas/infinispan-config-fragment-13.0.xsd" xmlns="urn:infinispan:config:13.0" name="mycache"/>
其他资源