`
zqrain
  • 浏览: 4420 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

再谈集群环境下Hibernate的二级缓存(memcached VS JBossCahce)

阅读更多

看到JE上好几个关于memcached做hibernate二级缓存帖子,不由得兴奋了一把。

 

作为集中式的缓存实现,的确可以解决JBossCache在大量update时的广播效率问题。

 

但是,目前我碰到的case,需要有大量的update,同时还期望(最好)能拥有一定的事务性(要求不高,read-commited级别就可以了,也就是Hibernate里面的read-write模式)。

 

目前不知道到底是hibernate-memcached好还是JBossCache好?

 

hibernate-memcached

    好处:集中式,update后无需广播

    坏处:不支持事务

JBossCache

    好处:支持事务(但其实我的case不需要那么高隔离级别的事物)

    坏处:update后通过广播在各节点之间同步

 

 

BTW,问几个很弱的问题

(1)memcached在更新的时候,是否会block其他的读操作;或者,如果有多个请求同时提交写请求,它会怎么办?

(2)JBossCache在集群环境下如何实现事务性支持?难道需要等到各个节点都完成同步之后才能最后提交?否则其他节点岂不是很容易读到脏数据?

 

 

请熟悉这个领域的大牛大力拍砖!!!

分享到:
评论
1 楼 魔力猫咪 2009-02-10  
一个问题,你的集群规模是多大?如果是双机集群的话,同步的代价其实并不大。
根据需求,你对事务的隔离要求不是太高,那么我觉得这两种方法都可以满足你。如果你集群环境规模较小,直接JBossCache。
如果集群规模较大,但对事务要求不是很高,那么memcached的确很诱人。

相关推荐

    Hibernate缓存深入详解.ppt

    在分布式环境下,二级缓存可以通过配置实现分布式缓存,如使用Redis、Memcached等。这种方式可以在多台服务器之间共享数据,提高系统的可扩展性和性能。同时,需要处理好分布式环境下的数据一致性问题,如采用事件...

    hibernate 缓存

    **分布式缓存**:在多服务器环境下,通过集群共享二级缓存,进一步提高系统性能和可用性。缓存一致性是个挑战,需要通过分布式协调机制保证数据的一致性。 **实现方式**: - 使用支持分布式缓存的中间件,如Redis或...

    Hibernate缓存

    Hibernate缓存机制通过一级缓存和二级缓存实现了对数据库访问的优化,降低了数据库负载,提升了系统响应速度。理解和合理使用缓存是优化Hibernate应用性能的关键,同时也需要注意缓存可能导致的数据一致性问题,以...

    Java环境下Memcached应用详解.docx

    2. **Hibernate Provider**:如果使用Hibernate作为ORM框架,可以自定义Hibernate缓存提供者,将Memcached作为二级缓存。这样,Hibernate查询的结果会被缓存起来,提高数据库访问效率。 3. **Session复制**:利用...

    Hibernat缓存

    Hibernate缓存是优化数据库操作的关键,它通过存储数据库数据的拷贝来减少对数据库的直接访问,从而提高应用性能。缓存分为一级缓存和二级缓存。 一级缓存是SessionFactory级别的缓存,也是默认开启的。每个Session...

    j2EE 缓存 Web前端优化 后台 服务器优化

    - **Hibernate二级缓存**:SessionFactory级别,跨Session,可配置为进程内或集群间共享,缓存查询结果和集合数据。 3. **分布式系统中的缓存(Memcached、Xmemcached)** - **分布式缓存**:在分布式环境中,...

    Coherence企业级缓存

    这通常涉及到配置Hibernate的二级缓存,将Coherence作为缓存提供商,以便在内存中存储和检索对象。 总的来说,Oracle Coherence通过其独特的分布式缓存技术,为企业级应用提供了高性能、高可用性的数据存储和访问...

    Hibernate框架中的缓存技术详解

    然而,由于涉及多线程和分布式环境,二级缓存的实现通常需要第三方缓存产品,如EhCache、Redis或Memcached等。在Hibernate中,配置二级缓存需要在配置文件(如hibernate.cfg.xml)中指定缓存提供者,并添加对应的...

    memcached面试专题1

    3. 更好的扩展性:在多核CPU环境下,memcached不会像MySQL的query cache那样遇到全局锁的问题。 缺点: 1. 需要额外工作量集成:与MySQL的query cache相比,将memcached引入应用需要更多开发工作。 2. 缓存失效:...

    memcached面试专题.pdf

    3. 在多核CPU环境下,MySQL的querycache会遇到扩展性问题,因为它引入了全局锁来管理缓存,而memcached则不存在这样的问题。 4. memcached允许存储任意数据,不仅仅局限于SQL查询结果,从而可以更灵活地设计缓存策略...

    详解大型网站web服务器缓存.zip

    例如,Java的Spring框架中的Hibernate二級缓存和Redis等内存数据库就是常见的应用缓存解决方案。 接下来是分布式缓存,它是在多台服务器之间共享数据的一种机制,常用于处理海量数据和高并发场景。分布式缓存系统如...

    memcached面试专题及答案.pdf

    Memcached是一款高性能的分布式内存对象缓存系统...与MySQL的Query Cache相比,Memcached具有更优的性能表现,尤其是在大规模分布式环境下。在决定使用哪一种缓存策略时,需要根据应用的具体需求和环境来做出合理选择。

    30_分布式缓存相关面试题的回答技巧总结.zip

    分布式缓存是一种将数据存储在分布式环境中的高速缓存技术,通常用于减轻数据库的负载,提高数据读取速度。常见的分布式缓存系统有Redis、Memcached、Hazelcast等。 2. **为什么要使用分布式缓存?** 主要原因...

    ehcache-memcache-redis三大缓存男高音.docx

    - Ehcache更适合Java环境,尤其适用于本地缓存和Hibernate二级缓存。 - Memcached适用于需要快速、简单键值存储的跨语言环境,适合缓存小型数据。 - Redis因其丰富的数据结构和持久化能力,常用于需要复杂数据操作和...

    Xmemcached用户指南.pdf

    7. **Spring和Hibernate集成**:与Spring框架无缝集成,同时支持Hibernate-memcached,作为二级缓存解决方案,可替代Spymemcached。 8. **客户端连接池**:允许创建连接池以应对高并发场景,但需要注意数据独立性和...

    新巴巴运动网

    - **集群环境下Session共享:** 解决集群环境下Session共享的问题。 - **Linux系统操作与缓存服务器部署:** 在Linux环境下进行系统操作和缓存服务器的部署工作。 #### 三、项目开发流程 - **开发环境搭建:** ...

    大型网站数据库优化大型网站数据库优化.docx

    使用Hibernate和Ecache进行数据持久化和缓存管理,但若追求更高性能,可以考虑使用EJB和WebSphere、WebLogic这样的企业级服务器,并配合Oracle等高性能数据库。 6. **静态化与URL重写**:对高流量内容进行静态化...

    互联网大厂Java工程师面试题及其答案.pdf

    - 一级缓存是SqlSession级别的,二级缓存是Mapper级别的,可以跨SqlSession共享数据,提高效率。 - MyBatis的接口绑定允许将接口方法与SQL映射文件的SQL语句关联,有两种实现方式:基于注解和基于XML配置。 2. **...

Global site tag (gtag.js) - Google Analytics