负载均衡后数据无法同步了。找了资料说是要用ehcache的分步式缓存,其实ecache自1.2+版本后就支持了分步式缓存,配置:
<defaultCache maxElementsInMemory="1000" eternal="false"
timeToIdleSeconds="120" timeToLiveSeconds="120" overflowToDisk="true" />
<cache name="frontCache" maxElementsInMemory="10000" eternal="false"
timeToIdleSeconds="1800" timeToLiveSeconds="3600" overflowToDisk="true" />
<!--这是在配置tomcat1服务器,其中192.168.0.1是tomcat1的IP,192.168.0.2是tomcat2的IP,tomcat2的配置就是把这些IP互换就行了-->
<cacheManagerPeerProviderFactory class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
properties="peerDiscovery=manual,rmiUrls=//192.168.0.2:8082/userCache|//192.168.0.2:8082/resourceCache"/>
<cacheManagerPeerListenerFactory class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory" properties="hostName=192.168.0.2,port=8082,socketTimeoutMillis=120000"/>
<!-- acegi cache-->
<cache name="userCache" maxElementsInMemory="10000" eternal="true" overflowToDisk="true">
<cacheEventListenerFactory class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"/>
</cache>
<!-- acegi cache-->
<cache name="resourceCache" maxElementsInMemory="10000" eternal="true" overflowToDisk="true">
<cacheEventListenerFactory class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"/>
</cache>
注意:如果你用的是tomcat服务器,请一定要将ehcache的jar包放到tomcat的common/lib下,否则会出现
java.io.EOFException