有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

javaehcache分布式多通道

我正在以Distributed模式使用ehcache。 缓存按通道同步

<cacheManagerPeerProviderFactory
    class="net.sf.ehcache.distribution.jgroups.JGroupsCacheManagerPeerProviderFactory"
    properties="channelName=CHANNEL1:connect=UDP(mcast_port=45568)"
    propertySeparator=":" />

对于一个新的需求,我需要同步两个通道:通道1和通道2

这可能吗?如果是,我怎么做

提前谢谢


共 (1) 个答案

  1. # 1 楼答案

    通常,cacheManagerPeerProviderFactory的一个实例用于跨集群复制(或同步)缓存数量。在这种情况下,"channelName=CHANNEL1:"更像是简单地给出一个名字。我认为ehCache不支持多个通道

    如果您的需求是在一个通道上有一些特定于复制的功能,您可以尝试以下方法之一

    • 在同一个应用程序中运行两个EhCache管理器,每个管理器都使用它的EhCache。xml,一个用于特定的复制逻辑,另一个用于缓存的公共复制逻辑
    • 您将只有一个缓存管理器,但您的ehcache除外。xml的不同之处在于,您不会在第三个应用程序中包含缓存(需要特定的复制逻辑)

    第一个是更干净的方法。 您可以通过以下方式使用Spring创建多个EHCacheManager

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