我在ditributed模式下使用ehcache.
缓存通过通道同步.
<cacheManagerPeerProviderFactory
class="net.sf.ehcache.distribution.jgroups.JGroupsCacheManagerPeerProviderFactory"
properties="channelName=CHANNEL1:connect=UDP(mcast_port=45568)"
propertySeparator=":" />
对于新的要求,我需要与两个通道同步:CHANNEL1和CHANNEL2.
这可能吗 ?如果是的话,我怎么能这样做?
提前致谢
解决方法:
通常,一个cacheManagerPeerProviderFactory实例用于跨群集复制(或同步)多个缓存.在这种情况下,“channelName = CHANNEL1:”更像是简单地给出一个名字.我不认为ehCache支持多个频道.
如果您要求具有某些特定于复制的通道,则可以尝试以下操作之一
>在同一个应用程序中运行两个EhCache Manager,每个管理器都带有ehcache.xml,一个用于特定的复制逻辑,另一个用于缓存的公共复制逻辑.
>您将只有一个缓存管理器,但您的ehcache.xml会有所不同,您不会在第三个应用程序中包含缓存(需要特定的复制逻辑).
第一个是更清洁的方法.
您可以通过以下方式将多个EhcacheManagers与Spring配合使用,
<ehcache:annotation-driven cache-manager="ehCacheManager1" />
<bean id="ehCacheManager1" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
<property name="configLocation" value="classpath:ehcache-1.xml" />
</bean>
<bean id="ehCacheManager2" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
<property name="configLocation" value="classpath:ehcache-2.xml" />
</bean>