【问题标题】:Open-source Distribued Cache for Java用于 Java 的开源分布式缓存
【发布时间】:2012-09-10 13:52:03
【问题描述】:

可以在Java中使用的最好的开源分布式缓存是什么?

我以为是EHCache,但显然只有在使用Terracotta Server Array时才能在多个节点上进行扩展,这是一个商业产品。

我的目标是实时为流数据构建缓存,有一定的延迟,我实际估计的数据大小在 8gb 左右,而生产速度要慢得多,在 3mb 左右每秒。

由于存在初始延迟,我希望我的缓存也能被复制,因为从 0 开始时,我的缓存需要一个预热期,我非常有兴趣避免。

【问题讨论】:

  • 您有什么要求?您希望分发多少数据?它多久改变一次?

标签: java caching ehcache terracotta


【解决方案1】:

Memcached 值得研究。

【讨论】:

  • 我读过它,它似乎是一个很好但旧的解决方案,我宁愿考虑去 CouchBase...
  • 它已经很老了,但它可以胜任。由于易于配置和性能,它被许多公司广泛使用。在 java 世界中有两个主要的 memcached 客户端:xmemcachedspymemcached。如果您想要更高的缓存抽象并仅通过在方法上添加一些注释来将透明缓存机制添加到您的代码中,请查看我的项目Simple Spring Memcached
【解决方案2】:

我建议您看看名为Hazelcast 的产品 虽然它本身不是分布式缓存,但它是一个可扩展且易于使用的数据网格。

顺便说一句,如果您能告诉我们有什么要求会更好,有很多开源产品可能适合您的需求...

希望对你有帮助

【讨论】:

    【解决方案3】:

    你可以使用内存缓存

    或 Redis (http://code.google.com/p/redis/) --> 存储不是易失性的

    或twemcache (http://engineering.twitter.com/2012/07/caching-with-twemcache.html)

    【讨论】:

      【解决方案4】:

      您不需要 Terracotta 的商业许可来集群您的 (Eh) 缓存... 使用多个条带时确实需要许可证,但一台服务器(可能是被动服务器)不需要任何许可证

      【讨论】:

        【解决方案5】:

        试用 TayzGrid,它是一个开源 In-Memory Data Grid,也称为内存数据网格。

        OP:我的目标是实时为流数据构建缓存,有一定的延迟,我实际估计的数据大小在 8gb 左右,而生产速度要慢得多,按顺序每秒 3mb。

        开源版本已准备好用于生产,可轻松满足 100GB 的数据。与此相比,您的数据非常小:)

        OP:我希望我的缓存也能被复制

        您的愿望已实现:Replicated Cache。引用;

        两个或多个内存数据网格服务器组成一个复制缓存集群。每个数据网格服务器都包含数据网格中的所有数据。在任何服务器上执行的任何更新都会以同步方式传播到集群内的所有其他服务器

        【讨论】:

          【解决方案6】:

          Apache Ignite 有一个功能丰富的分布式数据网格,它当然支持分布式缓存。你可以在这里找到更多信息:https://ignite.apache.org/features/datagrid.html

          【讨论】:

            猜你喜欢
            • 2012-03-15
            • 1970-01-01
            • 2016-11-21
            • 2011-04-10
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2010-10-13
            • 1970-01-01
            相关资源
            最近更新 更多