EhCache RMI复制在两个实例中显示不同数量的元素

时间:2014-06-10 09:15:07

标签: java replication rmi ehcache

我们找不到另一种方法来测试两个服务器实例之间的缓存复制,除了在nginx地址上运行压力测试, 在两个实例之间按负载分配请求。测试完成后,我们使用两个实例上的java-melody浏览器界面检查每个缓存中的元素数量。并且两个实例之间的缓存存在差异。有人能说是ehcache的正常行为吗?如果没有什么解决方案我们可以用来解决这个问题吗?

P.S。:如果使用单个请求,缓存复制可以正常工作。

配置实例1:

<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"
         updateCheck="false" monitoring="autodetect"
         dynamicConfig="true">
  <cacheManagerPeerListenerFactory
        class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"
        properties="hostName=host1, port=7571, socketTimeoutMillis=2000"/>

 <cacheManagerPeerProviderFactory
        class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
        properties="peerDiscovery=manual,  
        rmiUrls=//host1:7572/ClientLink_ID|//host1:7572/ClientLink_MainID|//host1:7572/ClientLink_SubID|.../>

配置实例2:

<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"
         updateCheck="false" monitoring="autodetect"
         dynamicConfig="true">
 <cacheManagerPeerListenerFactory
        class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"
        properties="hostName=host1, port=7572, socketTimeoutMillis=2000"/>

 <cacheManagerPeerProviderFactory
        class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
        properties="peerDiscovery=manual,  
        rmiUrls=//host1:7571/ClientLink_ID|//host1:7571/ClientLink_MainID|//host1:7571/ClientLink_SubID|.../>

</ehcache>

缓存配置示例:

<cache name="ClientLink_ID"
           eternal="false"
           maxEntriesLocalHeap="1000"
           timeToIdleSeconds="600"
           timeToLiveSeconds="900"
           statistics="true">
        <persistence strategy="none"/>
    <cacheEventListenerFactory class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"/>
    </cache>

0 个答案:

没有答案