【发布时间】:2018-12-27 19:20:56
【问题描述】:
我在我的 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>
平均产生 1600us 与 16us 超过 2000 次 GET。
【问题讨论】:
-
分析这个问题有什么进展吗?在堆层旁边添加集群缓存层时,我也面临几毫秒的增加,但无法理解它的原因。
标签: java caching ehcache terracotta ehcache-3