2016-03-06 41 views
0

我有点困惑,读Infinispan指南。Infinispan配置

我想有两个群集缓存,可以分开的jgroups文件有不同的多播地址,但是应该只有一个缓存包含器?

<?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> 

回答

1

对于每个群集缓存,您不需要单独的jgroups文件。只需配置缓存容器的传输元素,然后您可以在该缓存容器中定义任意数量的缓存。

1

如果您希望缓存容器形成不同的群集,则只需要不同的多播地址。我认为这里令人困惑的是你可以在JGroups中定义多个stack-file元素,但是你只能真正指定一个cache-container元素。 XSD不够精确,但代码中的解析器假定一个全局配置构建器实例,因此是单个缓存容器。所以,如果你想创建两个单独的缓存容器,这些容器应该当前在单独的XML文件中定义。

+0

我已经创建了[ISPN-6344](https://issues.jboss.org/browse/ISPN-6344)来解决混淆问题。 –