gpt4 book ai didi

java - 满足所有这些标准的分布式数据层缓存系统?

转载 作者:行者123 更新时间:2023-12-02 03:31:47 25 4
gpt4 key购买 nike

我需要选择一个能够满足这些条件的分布式数据层缓存系统。

必须具备

  1. 缓存应该在单独的进程中运行,并且可以通过 TCP/UDP 调用。我们不愿意在当前运行 Web 应用程序的同一 JVM 内存空间中运行缓存。
  2. 缓存应分布在多个缓存服务器上,以消除任何单点故障。
  3. 序列化在大多数情况下应该是透明的,并且不应要求开发人员为要缓存的每个类实现方法或接口(interface)。
  4. 适用于所有类型缓存的单一 API。开发人员不需要学习多个 API 来读取/写入不同的对象树。
  5. 最终一致。始终保持一致是一项昂贵的主张,需要对集群中的所有节点进行 n 阶段提交。我们不需要如此复杂的系统。
  6. 容错又名优雅降级。如果整个缓存系统出现故障,应用程序仍然可以运行,但在这种情况下性能会受到影响,这是可以理解的。
  7. 基于 LRU 和 FIFO 等配置的自动缓存驱逐。
  8. 开源且免费。正如我们使用 Solr 和 Active MQ 的经验所证明的那样,拥有源代码肯定会有所帮助。我们愿意购买商业支持,就像我们对 Solr 所做的那样,但软件产品本身必须是免费的。
  9. 动态集群成员资格。添加或删除任何节点时,整个分布式缓存集群不得需要重新启动。
  10. 高可靠性。缓存解决方案在面对服务器和网络问题时应该是可靠的,并且可以处理服务器或网络故障、写入竞争等可能引起的数据一致性问题。
  11. 高性能。想象一下缓存最终会比 Oracle 还慢!
  12. 如果缓存服务器是基于 Java 的,则加分,因为这是开发团队最熟悉的。
  13. 缓存数据的高可用性。这意味着跨多个节点复制缓存数据,这样丢失单个节点并不意味着丢失该节点上的所有缓存数据。我们计划存储 Java Http session 对象,以便我们也能实现 session 故障转移。

很高兴拥有

  1. 基于网络的控制台,用于监控和管理所有缓存服务器节点或至少一个 API,我们可以通过该 API 创建警报和通知。

最佳答案

除了 Web 控制台之外,您应该能够使用最专业的可用缓存来实现此目的。

我会从 terracotta、ehcache 或 hazelcast 开始。

这里列出了一些最好的缓存

http://www.java-sources.net/open-source/cache-solutions

关于java - 满足所有这些标准的分布式数据层缓存系统?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6562207/

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