0

我目前正在评估 Windows Server AppFabric 作为分布式缓存解决方案。如果我们实现 AppFabric,我们将有 3 或 4 个不同的 Web 应用程序使用它进行缓存。我已经看到 AppFabric 提供了创建命名缓存的能力。我想知道是否可以在命名缓存上设置最大大小?看起来你可以设置一个最大值。缓存集群主机的内存大小,但我没有看到任何表明这可以在每个缓存的基础上完成。

我对设置最大值感兴趣的原因。每个缓存的大小是我的想法是我们将为每个使用 AppFabric 的应用程序创建一个命名缓存。然后,例如,应用程序 A 缓存的对象不会潜在地导致应用程序 B 缓存的对象被驱逐。也许我正在错误地考虑这一点,或者还有另一个 AppFabric 功能可以实现这一点。任何见解将不胜感激。

4

2 回答 2

1

恐怕在 AppFabric 中不可能做到这一点。

命名缓存是数据的逻辑容器,每个缓存跨越集群中的所有缓存主机。因为您可以在集群中动态添加/删除主机,所以指定命名缓存的大小是没有意义的。

这就是为什么规划缓存使用和监控集群非常重要的原因。一种方法是通过性能计数器(您还可以获得命名缓存的大小)。

您可以指定的唯一一个限制是在缓存主机上(这将影响集群中所有已配置的命名缓存):它仅用于驱逐。此功能与健康监测更相关。

于 2012-11-05T09:55:47.783 回答
1

供那些希望更改整个集群缓存的人参考:

更改主机上所有命名缓存的大小

http://blog.milrr.com/2012/05/code-how-to-change-appfabric-cache-size.html

stop-cachecluster
set-cachehostconfig -HostName ENVY7-WIN8-2 -CachePort 22233 -CacheSize 1024
start-cachecluster

这将设置 1GB 缓存。正如@geo1701 所指出的,最佳实践建议您不应超过 RAM 的 50% 。

于 2015-01-28T03:16:53.130 回答