关于Caffeine Caching -- Scalability, population, loading, etc的提问

Questions about Caffeine Caching -- Scalability, population, loading, etc

提问人:Manny 提问时间:11/17/2023 最后编辑:Manny 更新时间:11/17/2023 访问量:13

问:

我一直在阅读 Caffeine Cache,有几件事我不明白。

在什么情况下会使用 Asnyc 加载?是不是有风险。就像你的缓存可能在后台自动加载内容一样,你尝试访问同样的东西,然后就没有意义了。

另外,咖啡因可以水平扩展吗?为什么使用缓存进行水平扩展而不是仅仅增加缓存的吞吐量可用性是有益的?如果我们想增加吞吐量,是增加 EC2 实例类型的内存更好,还是增加缓存可以增长到的最大大小更好?一个实例是否可以将多个缓存用于不同的事物?

而且,如果一个服务使用一个咖啡因缓存并有一个实例,那么拥有多个缓存管理器对我来说是没有意义的,每个缓存管理器都为填充或逐出配置了不同的选项。难道不需要在同一缓存中保持一致性吗?

出于所有意图和目的,假设这是针对使用 EC2 的服务。

非常感谢!

缓存 Amazon-EC2 Cloud Caffeine-Cache

评论

0赞 Ben Manes 11/17/2023
Caffeine 是一个本地缓存(单个进程),因此水平扩展留给同级框架或应用程序。它是一个有界的 ConcurrentHashMap,因此您可以拥有任意数量的缓存,并且它确实提供了一个缓存管理器(其他框架可能会)。异步加载将 future 存储到缓存中,如果您的 API 也是基于异步的,则可供其他调用使用,以便您可以在不阻塞的情况下进行重复数据删除(例如 kotlin 协程、链式 http 请求)。剩下的就是应用程序/框架选择,由您决定什么是有意义的。

答: 暂无答案