我在我的 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。