`
gaojingsong
  • 浏览: 1182056 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

【分布式缓存之JBoss Cache】

阅读更多

JBoss Cache’s goal is to provide enterprise-grade clustering solutions to Java-based frameworks, application servers or custom-designed Java SE applications.

 

Clustering for high availability

Since JBoss Cache is a replicated cache, state is always kept in sync with other servers in the cluster.  This makes any state stored in JBoss Cache resilient to server crashes or restarts, achieving high availability.

 

Clustered caching to remove bottlenecks

JBoss Cache still is, as it’s name suggests, a cache.  It is a product designed to cache frequently accessed Java objects in order to dramatically improve the performance of applications.  This makes it easy to remove data access bottlenecks - such as connecting to a database. 

 

And unlike non-cluster-aware caches which may go out of sync when there are concurrent updates, each JBoss Cache instance is aware of remote cache updates and can either invalidate or update it’s state.

 

集群高可用性

 

JBoss Cache将会自动复制缓存数据,并且在集群中的服务器之间进行缓存数据的同步,这样可以保证任何一台服务器重启了都不会影响缓存的可用性。

 

集群缓存可避免系统瓶颈

JBoss Cache顾名思义是利用缓存来提高系统扩展性的,当我们的WEB系统遇到大量的数据库读写时,系统的瓶颈将会出现在数据库端,JBoss Cache正好可以解决数据库的频繁读取问题,解决这个瓶颈。

 

另外,由于JBoss Cache的缓存是在集群中的每一个服务器间同步的,因此也不会因为一台缓存服务器遇到性能问题而影响整个系统。

 

 

JBoss Cache提供两种缓存方式:核心缓存(TreeCache)和POJO缓存(TreeCacheAOP)

核心缓存: 会直接把传递给它的数据存储在一个树型结构中。键/值对被存储在树的节点上,出于复制或持续性的需要它们都被序列化了 POJO 缓存: 则采用比较复杂的机制——利用字节码编织来内省(introspecting)用户类,并向用户类的域添加侦听器,一旦域值有任何变化,侦听器会立刻通知缓存。例如,如果要在POJO缓存中存储一个庞大、复杂的对象,会导致POJO缓存内省对象的字节码,最终只把该对象的原始域存储到树结构中。一旦域值有所变化,缓存只复制这个改变了的域值而不会去复制整个用户类,这是高效的细粒度复制。

 

 

TreeCache按功能分为三类:本地(Local)Cache、复制(Replication)Cache和失效(Invalidation)Cache。 分布式Cache(复制和失效Cache)又分为两种,同步(REPL_ASYNC)和异步(REPL_SYNC),同步

Cache是在一个Cache实例做修改时,等待变化应用到其它实例后才返回,而异步Cache是在一个Cache实例做修改时,即刻返回。

 

缓存模式

LOCAL - 本地,非集群缓存。本地缓存不参与集群,也不同集群里的其他缓存通信。 因此,他 们的内容也不用串行化。但是,我们推荐将他们串行化, 这样将来的某一天想要改变缓存模式 时允许一定的灵活性。

REPL_SYNC - 同步复制。复制缓存将所有的变化复制到集群中的其他缓存. 同步复制意味着,复制变化时,调用是阻塞的,直到收到复制确认。

REPL_ASYNC - 异步复制。与上面的 REPL_SYNC 类似, 复制缓存将所有的变化复制到集群中的 其他缓存。 因为异步,调用者不用阻塞直到收到复制确认。

INVALIDATION_SYNC - 如果缓存配置为失效而不是复制, 每次缓存里数据更新,集群里的其他 缓存将收到通知消息, 通知他们的数据已经陈旧了,应该从内存中驱逐。 这将减少复制的开 销,然而仍然能够使远程缓存中的陈旧数据失效。

INVALIDATION_ASYNC - 象上面一样,但是这个失效模式是用异步的方式广播失效消息的。

0
0
分享到:
评论

相关推荐

    Advanced JBoss Cache

    JBoss Cache是一款功能完备的企业级开源缓存引擎,它具备事务性、分布式/复制、持久性、自愈性、可插拔/可扩展性以及高度可配置/可调性等特点。JBoss Cache最早以复制java.util.HashMap的演示项目开始,使用了LGPL...

    用JBOSS CACHE 做CAS集群在weblogic上部署的问题

    标题中的“用JBOSS CACHE做CAS集群在weblogic上部署的问题”涉及到的是一个特定的分布式缓存解决方案在不同应用服务器环境下的集成问题。CAS(Central Authentication Service)是一种开源的身份验证服务,它允许...

    使用jboss cache 作为pojo cache

    JBoss Cache 是一款强大的开源缓存解决方案,尤其适合在企业级应用中作为POJO(Plain Old Java Object)的缓存系统使用。POJO Cache 提供了一种面向对象且分布式的缓存机制,使得用户在处理对象时无需直接关心缓存...

    分布式缓存

    JBoss Cache是针对Java应用的企业级集群解决方案,其目的是通过缓存需要频繁访问的Java对象,提高应用的可用性并大幅度提升应用的整体性能

    JBoss Cache

    - **JBoss Cache**:是一种分布式缓存技术,能够实现跨多个节点的数据共享,提供了一种高效且一致的方式来存储和检索数据。 - **POJO Cache**:即 Plain Old Java Object Cache,它是 JBoss Cache 的一个核心概念,...

    第八章 企业项目开发--分布式缓存memcached1

    为了解决这些问题,引入了分布式缓存,如Jboss Cache,但它的同步更新机制在大型集群中效率较低。而Memcached则是一种更优的选择,它将缓存存储在独立的服务器上,理论上可以提供近乎无限的缓存容量(取决于集群规模...

    jboss集成 ehcache 快捷部署缓存

    Ehcache则是一款广泛使用的Java缓存解决方案,它可以提供本地内存缓存以及分布式缓存的能力,有效地减少数据库的访问压力,提高系统的响应速度。 首先,我们需要了解ehcache的基本概念和工作原理。Ehcache分为两级...

    jbosscache-core-3.2.5.GA-all.zip

    1. jbosscache3.2.5.jar:这是JBoss Cache的主要运行时库,包含了实现分布式缓存功能的所有类和资源。它提供了缓存管理、缓存配置、并发控制、数据复制以及持久化等功能。 2. jbosscache-core-sources.jar:这个...

    cache要用到的包

    它支持多种缓存模式,例如:本地缓存、分布式缓存和replicated cache,可以根据实际需求选择合适的模式。分布式缓存模式下,数据分散在多个节点上,当一个节点请求数据时,如果本地没有,会从其他节点中获取,降低了...

    Cache Introduction

    2. **设计缓存策略**:决定使用哪种缓存模式(本地缓存、分布式缓存等),以及数据更新、过期和失效策略。 3. **配置Jboss Cache**:根据项目需求设置缓存的大小、复制模式、持久化选项等。 4. **编程接口**:使用...

    jbosscache

    而 POJO 版本则构建在核心库之上,使用 `org.jboss.cache.pojo.PojoCache` 接口,它允许对缓存中的对象进行内省,通过使用 JBoss AOP 提供透明的一致性。需要注意的是,POJO 缓存版本(通常称为 POJO Cache)具有...

    jboss相关Jar包

    这个jar文件包含了JBoss的分布式缓存实现,名为Infinispan。Infinispan是一个高性能、可扩展的数据网格,提供数据存储和缓存功能。在JBoss应用服务器中,Infinispan可以作为全局的、分布式的缓存服务,用于提高数据...

    Hibernate 2nd-level cache: JBoss Caching 配置与注意事项

    它支持分布式缓存,可扩展性强,能够处理大量并发请求。 三、配置JBoss Caching 1. 添加依赖:在项目中引入所需的JAR文件,如:jboss-cache-1.4.1.jar、jgroups-2.4.1.jar等,确保JBoss Caching和相关的通信库可用...

    Cache的特性和工作原理.docx

    - **JBoss Cache**:功能强大的Cache实现,支持多种特性,包括分布式Cache、多级Cache和集群支持,提供锁和事务处理。 **memcached的特性** - **多语言客户端API**:提供多种编程语言的客户端接口,方便不同环境下...

    jboss seam 中文文档集合

    JBoss Cache 是一个高性能、分布式的缓存解决方案,常用于提高应用性能和数据一致性。Jboss cache.pdf介绍了如何配置和使用JBoss Cache,包括集群设置、缓存策略等内容。 **6. JFreeChart** JFreeChart 是一个Java...

    JBoss Application Server4.2 Clustering_Guide

    这部分内容针对实体 Bean 在 EJB 2.x 版本中的实现进行了详细介绍,包括配置分布式缓存以及如何使实体 Bean 支持缓存功能。 **5.2 实体 Bean 在 EJB 3.0 中的应用** 讨论了实体 Bean 在 EJB 3.0 版本中的实现方式,...

    java中的缓存.pdf

    文中还涉及到了分布式缓存的概念,包括“memcached”、“remote cache”、“key-value”以及“local cache”。分布式缓存使得缓存数据可以跨应用服务器和网络进行共享。memcached是一个高性能的分布式缓存系统,通常...

    infinispan作者解读infinispan框架

    1. **分布式缓存**:Infinispan支持多种分布式缓存模式,如复制缓存、分区缓存等,可以根据不同的业务场景选择合适的缓存策略。 2. **高性能与可扩展性**:通过内存数据网格技术,Infinispan能够实现高速数据访问,...

Global site tag (gtag.js) - Google Analytics