gpt4 book ai didi

用于维护海量数据的 Java 缓存框架

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:45:05 25 4
gpt4 key购买 nike

用于存储大量数据的 Java 缓存框架。

上下文:我们正在使用 Jersey 2.6 开发 Restful 服务,并将在 WAS 8.5 上部署它。该服务每天需要处理超过 1000 万个请求。

我们需要实现一个缓存来存储超过 300k 的对象(数据将来自 DB)。我们需要一些方法来每天更新缓存。

  1. 是否推荐这种缓存 300k 对象并每天更新它们的方法?
  2. 有没有支持这种功能的 Java 框架?

最佳答案

您的问题过于笼统,无法得到明确的答案。您需要描述您要解决的问题是什么。

  • 您是否担心响应时间?
  • 您是否正在努力保护您的数据库免于承担繁重的工作?
  • 是否预计必须横向扩展并希望确保您可以处理 future 的负载?

此外,一些更多的上下文信息会很有用,尤其是:

  • 与您的请求相比,您的数据有多动态?
  • 平均每天请求的数据占数据总量的多少? (每天至少查询一次 30 万个对象中有多少个?如果您不知道,请提供您的最佳猜测)。

您给出的数字为 30 万 (300k) 个数据点和 1000 万个请求,这意味着您预计平均每天命中每个对象 33 次,这表明您更关心后端数据库负载,而不是您的响应是否正确最新的。

根据我的经验,有很多相当原始的解决方案比 Mongo、Cassandra 或 Coherence 等重量级分布式系统要好得多。

我的第一 react 是:保持简单 - 30 万个对象存储在内部哈希表中并不过分,您每天刷新一次并在第一次请求时填充。

如果你需要水平扩展,我建议使用 Memcache Spymemcached具有 1 天的缓存时间,当您找不到现有条目时会填充该时间。

我不会选择像 Cassandra 或 Mongo 这样的东西,除非你有真正令人信服的理由需要持久存储。理由:清除可能会变得非常繁重,尤其是当您的数据移动速度很快时。例如:Cassandra 并不真正知道如何删除,而是“逻辑删除”删除的条目,这意味着您的数据存储会不断增长,直到您创建清除策略。

关于用于维护海量数据的 Java 缓存框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28675644/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com