我们找不到另一种方法来测试两个服务器实例之间的缓存复制,除了在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>