0

关于文档,“entry-time-to-live-expiration”是指区域的条目可以在缓存中保留多长时间而不被访问或更新。默认是这种类型没有过期。但是,当我使用以下配置的 Spring Cache 和客户端区域时,我发现设置不能很好地被访问。展望未来,关于此文档-> XMLTTL 选项卡,它表示“配置副本区域以使 15 秒内未修改的条目无效。”。所以我很困惑 TTL 是否可以被访问。

<gfe:client-region id="Customer2" name="Customer2"  destroy="false" load-factor="0.5" statistics="true" cache-ref="client-cache">
    <gfe:entry-ttl action="DESTROY" timeout="60"/>
    <gfe:eviction threshold="5"/>
</gfe:client-region>
4

1 回答 1

0

因此,您可能想要参考的文档在此处此处。也许与您的情况有关的是...

"消费者对过期条目的请求将被转发给生产者。 "

根据您的配置,假设您没有设置 ClientRegionShortcut 或 DataPolicy,您的客户端区域“Customer2”默认为 ClientRegionShortcut.LOCAL,它将 DataPolicy 设置为“NORMAL”。DataPolicy.NORMAL 状态...

"允许此缓存中的内容与其他缓存不同。此区域感兴趣的数据存储在本地内存中。 "

而对于“本地”的快捷方式......

LOCAL 区域只有本地状态,从不向服务器发送操作。......

但是,这并不意味着客户端区域无法从服务器接收(感兴趣的)数据。它只是意味着操作没有分发到服务器。它可能会使条目过期,然后从服务器(生产者)重新填充它。

当然,我只是推测,并没有测试过这些想法。您可以尝试将 Expiration Action 设置为“LOCAL_DESTROY”和/或通过不同的 ClientRegionShortcuts 更改您的分发属性。

如果您仍有问题,请回帖。我也回应@hubbardr 的要求。

干杯!

于 2014-08-09T20:26:13.513 回答