EhCache处于分布式模式

时间:2017-08-29 14:05:57

标签: java caching iterator distributed ehcache-3

我们正在尝试将EhCache用作应用程序中的分布式缓存。 EhCache实例嵌入在我们的服务器中,我们使用了一个terracota集群。

我们所有的服务器(和ehcache)实例都成功连接到此tc。 我们成功地插入,更新并进入每个缓存。 但是我们不能迭代任何缓存。

也许我们以错误的方式配置了缓存,但似乎尚未实现迭代器方法(在org.ehcache.clustered.client.internal.store.ClusteredStore中):

  @Override
  public Iterator<Cache.Entry<K, ValueHolder<V>>> iterator() {
     // TODO: Make appropriate ServerStoreProxy call
     throw new UnsupportedOperationException("Implement me");
  }

我们的缓存配置如下所示:

<service>
    <tc:cluster>
        <tc:connection url="terracotta://10.23.69.20:9510/clustered"/>
        <tc:server-side-config auto-create="true">
            <tc:default-resource from="default-resource"/>
        </tc:server-side-config>
    </tc:cluster>
</service>


<cache-template name="CacheTemplate">
    <resources>
        <tc:clustered-dedicated unit="MB">16</tc:clustered-dedicated>
    </resources>
    <tc:clustered-store consistency="strong"/>
</cache-template>

<cache alias="CacheDaemon" uses-template="CacheTemplate">
    <key-type>java.lang.String</key-type>
    <value-type>com.server.cache.DaemonInstance</value-type>
</cache>

<cache alias="CacheProperty" uses-template="CacheTemplate">
    <key-type>java.lang.String</key-type>
    <value-type>java.lang.String</value-type>
</cache>

我没有找到任何其他方式,甚至没有获得密钥列表。

我们在缓存配置中犯了错误吗? 或者是EhCache分布式模式与此方法完全不兼容(因此我们不会使用EhCache)。

0 个答案:

没有答案