1

我在我的 Java Web 应用程序中成功使用了 EhCache。我现在正在尝试使用 Terracotta 服务器,因为我想在多个服务器实例上分发应用程序,但我很困惑。

当我将集群添加为资源时(保持堆资源原样),我希望 PUT 时间会更慢。但是 GET 时间不应该或多或少保持不变吗?当我将集群添加为资源时(如我所说,我将堆资源保持原样),GET 时间(由 JMX MBean 测量)增加了 10-100 倍。

我从文档中的理解是,在 PUT 时,需要通知权威层(在本例中为集群),因此它可以驱逐所有上层。但是在重复 GET 时,应该只考虑堆层(当足够大时——这里就是这种情况,这只是一个实验)。

我是不是这里出了什么问题,还是我的假设是正确的,而我在某处有错误?

<cache alias="publisherCache" uses-template="eternal-10000">
    <resources>
        <heap>200</heap>
        <terracotta:clustered-dedicated unit="MB">15</terracotta:clustered-dedicated>
    </resources>
</cache>

对比

<cache alias="publisherCache" uses-template="eternal-10000">
    <resources>
        <heap>200</heap>
    </resources>
</cache>

平均超过 2000 个 GET 产生 1600us 和 16us。

4

1 回答 1

0

你的配置看起来不错。第一次获取条目会更慢,因为您在堆层上有缓存未命中。

但是,以下所有的都应该像往常一样快。

你能告诉我是不是这样吗?

于 2018-07-22T07:00:15.340 回答