我对阅读Infinispan指南感到有点困惑。
我想拥有两个集群缓存,可能必须有单独的jgroup文件才能拥有不同的多播地址,但是应该只有一个缓存包含吗?
<?xml version="1.0" encoding="UTF-8"?>
<infinispan
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:infinispan:config:8.0 http://www.infinispan.org/schemas/infinispan-config-8.0.xsd"
xmlns="urn:infinispan:config:8.0">
<jgroups>
<stack-file name="file1" path="jgroups1.xml" />
<stack-file name="file2" path="jgroups2.xml" />
</jgroups>
<cache-container default-cache="cache1">
<transport stack="file1" node-name="${nodeName}" />
<invalidation-cache name="cache1" configuration="invalidation-template" />
<invalidation-cache name="cache2" configuration="invalidation-template" />
<invalidation-cache-configuration name="invalidation-template" mode="SYNC" >
<locking isolation="READ_COMMITTED" striping="true"/>
<transaction locking="OPTIMISTIC"/>
<eviction max-entries="20500" strategy="LRU"/>
<expiration interval="10500" />
</invalidation-cache-configuration>
</cache-container>
</infinispan>
答案 0 :(得分:1)
每个群集缓存都不需要单独的jgroups文件。只需配置缓存容器的transport元素,然后就可以在缓存容器中定义任意数量的缓存。
答案 1 :(得分:1)
仅当您希望缓存容器形成不同的群集时,才需要不同的多播地址。我认为这里令人困惑的是你可以在JGroups中定义多个stack-file
元素,但是你只能真正指定一个cache-container
元素。 XSD不够精确,但代码中的解析器假定一个全局配置构建器实例,因此是一个缓存容器。因此,如果要创建两个单独的缓存容器,这些容器当前应该在单独的XML文件中定义。