是使用分布式缓存Ehcache或者NoSQL数据库呢?

Posted on

是使用分布式缓存Ehcache或者NoSQL数据库呢? - Thinking In Jdon

标签的主题列表 缓存Cache 关注本标签 有新回复自动通知我 关注 通过cache来发挥同步与异步的优势 关于CQRS中,对于一个领域对象的lock JVM堆大小的建议 关于牛XX的内存领域+事件驱动的问题!!! Stack Overflow:memcached和Redis的比较 海量数据的查询缓存问题 为Domain寻求一种缓存 突破JVM内存:开源DirectMemory 数据网格 Data Grid和NoSQL相同和区别-异同 高并发开发?? 弱一致性在现实世界中到处存在 一个常见但不是那么容易的架构问题 如何处理频繁创建对象然后丢弃导致频繁GC的情况 使用ehcache元注释提高Spring 性能源码案例 SNS Webgame 社区类页面网游开发, 自己所用的架构,以及遇到的一些问题和困惑 JVM伪共享 数据管理的未来: “Disk-less” 风格数据库? 亚马逊的弹性缓存 如何驯服java GC导致暂停? 使用16GiB以上heap 使用设计模式后的副作用

分享到

百度分享 JiveJdon Community Forums在线 主题表 标签 查搜 注册 登陆 发帖 关注 设计模式 领域驱动设计 云架构 JiveJdon Jdon框架 企业咨询 主题讨论

用户 自动登陆 密码 新用户注册 忘记密码? 登录新浪微博 登录腾讯微博 登录Google 首页 » 论坛 » 云架构等扩展性讨论

阅读3831次 1人关注

前往下页: 发表新帖子 回复该主题贴

banq 个人详介按这里 文章: 12593 注册: 2002-08-03

是使用分布式缓存Ehcache或者NoSQL数据库呢?

2011-03-03 10:31

标签 缓存Cache NoSQL ehcache 可扩展性Scalable
10

顶一下

Ehcache实际是一个Java的开源缓存产品,用来提升性能,降低负载,方便可伸缩性。后面有秦始皇Terracotta兵马俑式的服务器矩阵支持, Ehcache成为一种线性可扩展的分布式缓存。它是一个无关系结构schema-less, key-value, 基于Java的分布式缓存,它提供可靠的一致性控制,可根据主键key 值value或属性索引搜索。

Flexible Consistency可靠的一致性 从Ehcache 和 Terracotta整合性来看, 我们可以激活相关的数据跨集群共享,按照CAP理论来说, 由于避免单机硬编码权衡考虑,我们在一个个缓存中创建了一个丰富的一致性模型;同时为了易于理解,我们采取统一标准客户端一致性模型来描述和配置它。 我们可以实现一个比NoSQL解决方案更加丰富的一致性富模型(模型驱动框架开源Jdonframework缺省采取echcahe的原因)。我们可以为每一个缓存提供跨集群的如下特性: 1.通过悲观锁支持强壮的一致性(缺省,一致性也就是事务性,数据事务安全性) 2.未加锁的弱一致性,用来先写后读,或只读,或者只写。 3.乐观锁 Compare and Swap (“CAS”),跨集群服务器的原子操作 。 4.XA分布式事务和本地事务机制transactions 5.一个显式的锁API,可以运行用户优化事务一致性带来的性能问题。 Ehcache架构非常不同于NoSQL(如memorycache ). 每个服务器内存中会驻留使用最频繁(LRU算法)的数据或对象。可以有4-6 GB heap 空间, 如果辅助以BigMemory, 能够扩展至上百 GBs(注意这是每台,如果考虑集群多台,几乎可以把数据库中数据都加载到内存中,相当于一个内存数据库). 这是一种Level 1 (“L1”) 缓存,完全基于内存in-process. 访问L1 速度一般少于1 μs. 整个缓存一般都驻扎Terracotta服务器阵列中. 这是一种Level 2 (“L2”) 缓存. 访问L2少于2 ms. 你从这个架构中得到的依赖于你使用经验,最普通一个情况是:the Pareto distribution, 80% 数据从 L1获得 , 20%时间从L2获得, 这样,普通延迟性一般是少于.401 ms. 通过比较,Yahoo! Cloud Serving Benchmark 基准测试表明 HBase 和 Cassandra延迟性是在 8 to 18 ms. 这使得Ehcache要快于NoSQL一个数量级别. 持久化 缓存能够被设置为持久化,能够提供永久保存和可重启性。一般使用一种写日志。缓存将能够恢复到一种一致性状态. 当ehcache被配置为一种分布式缓存时,Ehcache将使用Terracotta Server Array 作为二级缓存Level 2 cache. Terracotta servers通常是每个区配置两个,有HA. 另外,Terracotta 使用JMX tools实现备份,备份或恢复都能立即进行。 RDBMS关系数据库典型提供一个广泛归档索引 ETL等系列功能, 正因为这些理由,作者认为 Ehcache具有一些持久化小特性. 当然,这和许多NoSQL 产品类似。 大数据量Big Data 大数据量指成打T级别terabytes甚至达到 petabytes. Ehcache目前 可以达到2 TB. 以后会不断提升(banq注:集群的问题还是一个群的问题,群的规模是有上限天花板的,这和破坏了数据关系的NoSQL分布式是无法比拟的) ehcache对大数据量的限制主要还是受制于关系数据库RDBMSs. 如果使用BigMemory,Terracotta server可以加载到每台服务器内存中有250GB或更多. NoSQL 解决方案使用内存和磁盘混合,基于Java的Cassandra问题可能是垃圾回收, 受其限制只能有很小的heaps. BigMemory 是脱离heap使用额外内存,使用NIO的 DirectByteBuffer. 最终结果你可以用很小的服务部署付出得到同样的回报。 进入分布式[缓存](http://www.jdon.com/cache.html) 如果Ehcahce不是NoSQL, 那它是什么? 答案是它是一个分布式缓存distributed cache. 象它的NoSQL表兄弟, 它经常用于传统数据库不能覆盖的领域,缓存一个web page或或者耗费CPU计算是经常碰到的情况. 关键问题是要更快地访问到这些计算好的结果,这时并不是需要持久化. 在Java中最快的访问架构就是in-process caching, 通过网络作为一种in-memory cache. Gartner 和Forrester已经对分布式缓存Distributed Caching 和弹性缓存Elastic Caching有一个公开定义. Gartner: “分布式缓存Distributed caching平台让用户管理内存中非常大的in-memory data,以便使得关系数据库减轻负载、以及云计算和云事务处理、 以及更杰出性能的事务处理,或复杂的事件处理以及高性能计算”. 他们也将分布式缓存作为一个服务(“aPaaS”) 加入他们应用平台。 当然,我们可以在RDBMSs 和 NoSQL两者之前都使用分布式缓存(因为事务的需要)。 但是,同样缓存作为分布,而需要得到一些搜索之类企业特性时,和NoSQL自己区别就非常明显。 Use Cases场景用例 如果需要一个‘key-value plus search’key-value增强式的搜索,一旦数据量超过2 TB,那么NoSQL合适。 我们看看下面一些常用ehache缓存场景: Hibernate Caching. JDBC caching. Web caching. Collection caching.使用echcache 快速的分析结果查询 信用卡等与钱有关......见原文 结论 NoSQL是瞄准替代RDBMS, 缓存是瞄准低延迟和速度,可以根据CAP理论来衡量。缓存主要和应用有关,可以帮助应用脱离任何存储技术,无论是RDBMS 和 NoSQL(这点比较认同,jdonframework将缓存作为领域模型的生存空间,后面可以接关系数据库或NoSQL). 原文网址被封,需要翻墙。监管带来信息闭塞以致落后在我们经常看外文资料的人来说来感受非常明显。 Ehcache: Distributed Cache orNoSQL Store? :: myNoSQL [该贴被banq于2011-03-03 10:33修改过]

banq 个人详介按这里 文章: 12593 注册: 2002-08-03

1楼 是使用分布式缓存Ehcache或者NoSQL数据库呢?

2011-03-03 12:30 顶一下

ehcache与memcached区别是在一致性,也就是事务性方面,memcached使用HASH算法实现负载平衡,但是集群的另外一个要素:失败恢复,也就是服务器当了,数据还在其他地方存在共享;memcached的一台服务器宕了,上面数据就丢失了,由于采取Hash环,损失有限。

但是也由于没有状态数据在服务器之间共享复制,memcached对于只读性能应该比集群的更好。 上面文章主要是在基于Java的比较。

-

SpeedVan 个人详介按这里 文章: 494 注册: 2010-08-24

是使用分布式缓存Ehcache或者NoSQL数据库呢?

2011-03-03 21:24 顶一下

我现在使用cache,只是用Repository封装后,作为单系统内存接口来使用。分布技术,有待学习呢,真是路漫漫啊。自从认识web的cache之后,就知道了一个web架构,就相当于一个游戏引擎——缓存管理是其一个核心部分。

更多标签 缓存Cache(171) NoSQL(55) ehcache(9) 可扩展性Scalable(98)
推荐贴列表 置顶热贴 LMAX架构 [EDA事件驱动 异步编程 ] 五年java人的一点感悟 [软件观点 工具心得 ] 分享我的:领域驱动设计(DDD)学习成果精简总结 [DDD领域驱动设计 ] 如何提高web系统的吞吐能力? [吞吐量 高性能 ] 实践ddd,太让人沮丧了。。 [DDD领域驱动设计 jivejdon ] 使用Disruptor实现并发编程 PPT文档 [disruptor 并发并行 ] jdon框架优缺点之我见 [JdonFramework DSL领域特定语言 ] Instagram卖出10亿美金的启示 [云计算 项目管理 ] Martin Fowler厌倦ORM了 [对象数据库阻抗 ORM模式 ] Spring创始人Rod Johnson离开东家VMWARE [spring akka ]-

使用帮助 联系管理员 探索 分享 交流 解惑 授道 OpenSource JIVEJDON Powered by JdonFramework Code © 2002-15 jdon.com anti spam

-

-

希望本站内容对您有点用处,有什么疑问或建议请在后面留言评论
转载请注明作者(RobinChia)和出处 It so life ,请勿用于任何商业用途