分布式Ehcache
参考
这个文档包括一个Terracotta
分布cache的参考信息
快速安装
与定制安装
有2种方法来安装Terracotta分布cache:快速与定制。快速安装适用于只需要一个cache的集群。定制安装适用于需要一个cache集群和其他java对象,例如sessions和定制POJOs,或者使用Terracotta应用,或者使用Terracotta整合模块(Terracotta integration Modules:TIMs)整合其他技术。
如果你使用Ehcache在一个单独的JVM上,或者使用一个集群响应,可以考虑快速安装(在这里
)。如果你是一个前沿的Terracotta使用者,而且想要添加一个分布caching,可以考虑使用定制安装。
如果你不确定用哪种方式安装,请阅读2中安装方法,然后找到适合你的安装方法。这2中安装方法不兼容,也不能被兼容使用。
分布式cache配置文件
Terracotta分布式配置文件(默认为ehcache.xml)包含一个CacheMananger(the Ehcache class managing a set of defined caches)的一个实例的配置。这个配置文件必须在你应用的classpath里面。当你使用WAR文件的时候,需要将ehcache.xml复制到WEB-INF/classes中。
Terracotta集群配置元素
<terracotta>
这个element是一个<cache>中可选的sub-element。在ehcache.xml中定义的每个<cache>中,<terracotta>可以做不同的设置。
<terracotta>有以下这些特性:
clusted - 开启("true")或者关闭("false")terracotta集群对于某个cache。
valueMode - 设置cache序列化的方式(the standard Ehcache "copy" cache)或者标识 (Terracotta object identity)。标识只能在定制安装中被使用(查看快速安装
)
提示:比较序列化和标识模块
In serialization mode, getting an element from the cache gets a copy of that element. Changes made to that copy do not affect any other copies of the same element or the value in the cache. Putting the element in the cache overwrites the existing value. This type of cache provides high performance with small, read-only data sets. Large data sets with high traffic, or caches with very large elements, can suffer performance degradation because this type of cache serializes clustered objects. In read-write data sets, data coherency issues may arise because this type of cache cannot guarantee a consistent view of object values. Objects clustered in this mode _must be_ serializable.
In identity mode, getting an element from the cache gets a reference to that element. Changes made to the referenced element updates the element on every node on which it exists (or a reference to it exists) as well as updating the value in the cache. Putting the element in the cache does not overwrite the existing value. This mode guarantees data coherence. It can be used only with a custom Terracotta Distributed Cache installation. Objects clustered in this mode must be portable
and must be locked when accessed.
默认的在<cache>模块中添加<terracotta/>等价于添加<terracotta clustered="true" valueMode="seralization">。如果valueMode没有指明,会使用默认的"seralization"。
<terracottaConfig>
这个元素只在快速安装中使用(查看快速安装
)。当Terracotta对于某个cache打开时,这个元素必须用url或者用一个内嵌配置,指明Terracotta配置文件(默认为tc-config.xml)。
用URL属性
为<terracottaConfig>元素添加一个URL属性:
<terracottaConfig url="<source>" />
<source>可以是以下几种方式:
路径:(例如:url="/path/to/tc-config.xml")
URL:(例如:url="http://www.mydomain.com/path/to/tc-config.xml)
Terracotta主机地址:(例如:url="host1:9510")
Note the following about using server addresses in the form <host>:<dso-port>:
- * The default DSO port is 9510.
- * In a multi-server cluster, you can specify a comma-delimited list (for example, url="host1:9510,host2:9510,host3:9510" ).
内嵌Terracotta配置
你可以在ehcache.xml中内嵌一个关于Terracotta配置的内容:
<terracottaConfig>
<tc-config>
<servers>
<server host="server1" name="s1"/>
<server host="server2" name="s2"/>
</servers>
<clients>
<logs>app/logs-%i</logs>
</clients>
</tc-config>
</terracottaConfig>
编辑不相容的配置
对于任何被集群的cache,你必须删除、disable、或者编辑那些在Terracotta集群时不相容的配置元素。被集群的caches有个<terracotta>或者<terracotta clustered=”true”>元素。
下面这些Ehcache配置属性或者元素需要删除或者disable。
- DiskStore-related attributes overflowToDisk and diskPersistent .
Terracotta 服务器自动提供一个磁盘储存。
- Replication-related configuration elements, such as <cacheManagerPeerProviderFactory>, <cacheManagerPeerListenerFactory>, <bootstrapCacheLoaderFactory>, <cacheEventListenerFactory>.
当一个变化发生在Terracotta集群的时候,所以包含变化元素和对象的节点都会更新。 Unlike the replication methods used to cluster Ehcache, cache event listeners are not (and do not need to be) notified of remote changes. Listeners are still aware of local changes.
- Replication-related attributes such as replicateAsynchronously and replicatePuts .
MemoryStoreEvictionPolicy属性需要被设置成LFU或者LRU。设置MemoryStoreEvictionPolicy为FIFO将会引起IllegalArgumentException错误。
可以查看Ehcache documentation
得到更多标准的配置关于Ehcache。
分享到:
相关推荐
综上所述,Terracotta不仅提供了一套完整的分布式内存管理和数据共享解决方案,还具备高度可定制化的配置选项和优化策略,使得开发者能够针对具体应用场景进行精细化调优,从而充分发挥出Terracotta在大规模数据处理...
要搭建一个 Ehcache 集群,我们首先需要安装并启动 Terracotta 服务器。可以从官方网站下载最新版本的 Terracotta 服务器,并按照官方文档的指引进行安装。启动 Terracotta 服务器后,可以在管理界面监控集群的状态...
Terracotta的技术使应用程序能够利用集群硬件的资源来提高性能和可伸缩性。 描述中的博文链接指向了"Iteye"博客上的一篇文章,虽然具体内容无法在当前环境中获取,但我们可以推测博主Balaschen分享了一些关于使用...
配置完成后,Web应用程序应该能够通过Terracotta集群来管理其会话状态,这意味着会话数据可以在多台服务器之间无缝同步,提高了系统的可用性和可伸缩性。然而,确保正确配置和测试环境是至关重要的,以避免任何潜在...
1. **安装Ehcache和Terracotta**:首先,你需要下载并安装Ehcache和Terracotta服务器。确保版本兼容,并按照官方文档进行安装。 2. **配置Ehcache.xml**:在项目的资源配置文件中,需要设置`<terracotta>`元素,...
配置集群时,需要注意数据存储方式(如 JDBC 或 RAMJobStore)、节点间的通信机制(如 Terracotta 或 JMS)以及一致性策略,以确保任务的正确调度和避免重复执行。 总的来说,Quartz 是一个功能强大、易于使用的...
- **Terracotta Cluster Support**:如果需要分布式缓存,可以配置 Terracotta 服务器实现集群共享缓存。 ### 3. 使用 EHCache 在 Java 应用中,集成 EHCache 可以通过以下步骤: 1. 添加依赖:在 Maven 或 ...
Quartz是Cron-like作业调度系统,由James House和Terracotta公司在2002年发起。它的设计目标是提供一个灵活且可靠的平台,用于创建、调度和管理基于Java的应用程序中的任务。Quartz支持持久化作业存储,这意味着即使...
Ehcache不仅可以作为本地缓存,还可以在分布式环境中使用,支持集群和 terracotta 集群解决方案。 压缩包中的具体文件说明如下: - **ehcache-web-2.0.4.jar**:这是Ehcache的Web扩展,提供了与Web应用集成的功能...
例如,`terracotta-toolkit-1.5-runtime-4.2.0.jar`可能是Terracotta的运行时,它支持Spring的应用进行分布式内存管理,使得多个服务器可以共享同一份数据,提高系统的可扩展性。 在压缩包内的文件列表中,我们可以...
Ehcache是一个开源的、基于内存的分布式缓存系统,支持本地缓存、分布式缓存以及 terracotta 集群模式。它提供了快速的数据存储和检索,能够减少数据库的负载,提高应用程序的性能。Ehcache的核心特性包括缓存的创建...
4. `<terracotta>`:如果与Terracotta服务器集成,用于配置集群相关参数。 三、Ehcache API使用 1. `CacheManager`:负责创建和管理缓存实例。 2. `Cache`:代表一个具体的缓存区域,提供添加、获取、删除缓存项的...
- **Terracotta Clustering**: 虽然Red5并未直接使用Terracotta,但其设计理念对Red5的集群支持产生了积极影响。 - **Spring**: 使用Spring框架进行依赖管理和模块化设计,提高了系统的灵活性和可维护性。 #### 三...
1. Ehcache简介:Ehcache是由Terracotta公司开发的一个开源的、内存级别的、Java缓存系统,旨在提高应用程序性能,减少对数据库的访问,从而降低延迟和提高系统整体效率。它支持分布式缓存,可以在多节点环境中进行...
7. **缓存事件**:Ehcache提供了丰富的事件模型,如添加、更新、移除和命中事件,开发者可以通过监听这些事件来实现定制化行为。 8. **API与集成**:Ehcache提供简单易用的Java API,并且能够方便地与Spring、...
通过RMI(远程方法调用)或Terracotta服务器,可以实现多个节点间的缓存同步,确保数据的一致性。 在源码中,你可以看到Ehcache是如何通过线程安全的方式管理缓存的,以及如何高效地进行缓存查找、插入和移除操作。...
通过Terracotta,开发者可以将数据缓存在内存中,并确保这些数据在集群环境下的所有服务器间保持一致。这对于提高读写操作的速度、降低数据库压力以及支持高并发场景具有显著效果。 **1.1.2 大对象仓库** 大对象...
- `<terracotta>`元素(如果使用分布式缓存)配置集群相关设置。 四、Ehcache使用示例 在Eclipse项目中,首先需要添加Ehcache的依赖库,然后创建一个缓存管理器,并通过管理器创建和管理缓存区。以下是一个简单的...