Terracotta开源项目以及Terracotta公司
Terracotta是一款由美国Terracotta公司开发的著名开源Java集群平台。它在JVM与Java应用之间实现了一个专门处理集群功能的抽象层,以其特有的增量检测、智能定向传送、分布式协作、服务器镜像、分片等技术,允许用户在不改变现有系统代码的情况下实现单机Java应用向集群话应用的无缝迁移。使得用户可以专注于商业逻辑的开发,由Terracotta负责实现高性能、高可用性、高稳定性的企业级Java集群。
Terracotta公司目前在美国、欧洲、澳大利亚、印度等地有近百名员工,为Terracotta商业用户提供7x24技术支持、解决方案咨询等服务。同时在Terracotta开源产品之上提供适用于企业用户的高端产品。
Terracotta公司在2009年收购了著名的Java开源缓存项目Ehcache以及Java任务调度项目Quartz。经过对该项目的深度整合,Terracotta推出了易用性更高的分布式缓存、分布式任务调度以及分布式Web Session等快捷解决方案,进一步方便了开发人员开发分布式Java应用。
Terracotta核心平台DSO
Terracotta核心平台是一个基于JVM的集群解决方案,允许用户在不修改代码的情况下把单机Java应用程序运行在多JVM的集群中。
其主要功能特点如下:
- 实现单机Java应用到集群环境的平滑移植
- 允许Java程序像访问本地数据数据一样访问集群共享数据,并且实现对共享数据的集群范围内的访问同步
- 提供给予网络的虚拟内存管理,允许Java程序访问超过其内存空间(heap)的数据
- 数据保存在服务器端,因此客户端JVM宕机不会造成数据丢失
- 增量数据传递,智能数据推送,最大限度减少对网络的负担,使得客户端JVM可以横向扩展
- 主从服务器配置,支持多台从服务器,实现高可用服务器
- 服务器分片,实现服务器数据存储及数据吞吐量横向扩展
- 通过JMX开放服务器监控信息
- 提供可视化监控和管理界面,大大方便对整合集群的共享数据、性能数据、软硬件指标等的实施监控、调试、优化
Terracotta DSO核心平台提供了一个稳健、高效、高可用、易用、易管理的Java集群平台。
Terracotta为了进一步帮助J2EE开发人员充分利用其核心平台提供的各项特性,针对Java开发人员常用的Java技术平台提供了一系列快捷模式(Express Mode)的解决方案,包括Ehcache分布式缓存、Hibernate分布式二级缓存、Web Session集群、
分布式Java任务调度Quartz等等。
使用快捷模式,可以避免客户端程序对JDK和应用服务器的依赖、避免配置tc-config.xml文件等等。用户直接拷贝相应的jar文件,对方案相关的配置文件进行简单修改(比如ehcache.xml, hibernate.cfg.xml文件等等),就可以实现集群化了。
后面将逐一介绍Terracotta快捷模式支持的解决方案。
分布式缓存-Terracotta Ehcache和Hibernate二级缓存
Ehcache是独立于Terracotta开发的开源Java缓存项目。由于其高效、易用等特点,已经被超过70%的Java开发人员直接活间接使用。
Ehcache也是Hibernate项目缺省,也是功能支持最完备的耳机缓存解决方案。
Terracotta于2009年收购了Ehcache项目,并且对其进行深度整合。
整合后的Ehcache保留了其原有的API,增加基于Terracotta集群的分布式缓存。用户可以通过对ehcache.xml的简单配置,实现对原有基于Ehcache构建的代码的集群化升级。
<ehcache>
<terracottaConfig url="someserver:9510"/>
<defaultCache
maxElementsInMemory="10000"
eternal="false"
timeToLiveSeconds="120"
/>
<cache name="com.company.domain.Pets"
maxElementsInMemory="10000"
eternal=”true”>
<terracotta clustered="true" coherent="false"/>
</cache>
<cache name="com.company.domain.Pets"
maxElementsInMemory="10000"
timeToLiveSeconds="3000">
<terracotta clustered="true" coherent="true"/>
</cache>
</ehcache>
整合后的分布式Ehcache有如下特点:
- 简单、易用的分布式缓存
- 沿用Ehcache单机版API
- 直接支持Hibernate二级缓存实现
- 服务器集群支持
- 减少数据库30%-90%负载
- 高效、可靠
- 本地内存的访问速度
- 动态缓存数据持久话
- 客户端于服务器端均可横向线性扩展
- 自动数据分片
- 虚拟缓存内存管理,无限缓存空间
- 多级缓存动态均衡
- 企业用户支持
- 支持工业标准JMX
- 可视化管理工具
- 动态监控、调试、优化
由于Ehcache本身就是Hibernate标准二级缓存实现,因此将单机版的Hibernate二级缓存扩展到分布式缓存于将Ehcache扩展成分布式缓存一样简单。其优势也可以自动继承。
2010年3月,Terracotta推出了Ehcache 2.0,其中包含了大量的新的功能:
- Hibernate 3.3二级缓存SPI的支持
- Hibernate3.3以前为了保证数据库于缓存数据的一致性,对二级缓存的访问有大量的锁操作,导致并发性能不高;
- 3.3以后,Hibernate二级缓存部分代码进行了重构,提出了新的CacheRegionFactory的接口。大大提高对二级缓存的使用效率。Ehcache 2.0完全支持新的缓存接口;
- Java分布式事务的全面支持
- Ehcache可以通过配置,设定一个缓存为XAResource,自动加入分布式事务管理器启动的分布式事务;
- 能够自动检测常用的分布式事务管理器;
- 支持Spring、EJB等的分布式事务管理
- 延迟写(Write Behind)和直通写(Write Through)
- 提供Writer接口,负责将缓存数据写入数据库或者其他存储介质中;
- Write Behind允许将数据保存在缓存中,再用后台线程把缓存数据异步保存到数据库或者其他存储介质中。由于缓存数据保存在Terracotta服务器上,不会由于客户端JVM宕机导致数据丢失。Write Behind是通过缓存提高数据写入速度的有效方式;
- Write Through则是在将数据写入缓存后,马上调用Writer写入数据库中;
- 批量导入缓存数据
- 为了保证缓存数据一致性,每一次写操作都有同步处理,对于大量数据导入影响比较大;
- 提供了coherent标记,来打开或者关闭同步处理。缺省为true,提供同步功能;进行大量数据导入的时候,可以暂时关闭该标记,或者10倍以上的数据导入速度;
- setCoherent(), isCoherent(), waitForCoherent()
- Cache级别的一致性、可用性、数据分片等支持
- Coherent标记
- syncrhonizedWrite
- copyOnRead/copyOnWrite
- 集群事件监听
- UnlockedReadsView
- NonStopCache
- 在Terracotta服务器阵列出故障的时候仍然能够继续工作
- 不会锁死本地应用
- 超时设置
- 管理功能
- 新的基于Web的管理界面
- 大部分Cache配置可以在配置界面中实时修改、即时生效
待续。。。
分享到:
相关推荐
Terracotta 3.2.1 英文文档
首先,安装Terracotta 3.2.1版本是非常基础的一步。需要注意的是,安装路径不能包含空格,这是因为某些程序可能无法正确处理包含空格的路径,同样,JDK的安装位置也应遵循这一原则。将Terracotta部署在两台PC上,每...
Terracotta 是一款开源软件,它提供了一种在 Java 应用程序之间实时共享数据的解决方案。其核心思想是通过监听和同步数据变更来减少网络通信量。当一个节点上的数据发生变化时,Terracotta 只同步变化的部分至 ...
** Terracotta简介 ** Terracotta是一个基于Java的分布式内存管理平台,它可以使Java应用透明地运行在多台机器上,如同运行在单一节点上一样。通过Terracotta,开发者可以轻松地扩展应用程序,实现数据的共享和状态...
**一、Terracotta简介** Terracotta是一款开源软件,它的核心功能在于提供了一个分布式内存模型,能够将Java对象透明地分布到多台服务器上。这种分布式内存管理方式允许应用程序在不修改代码的情况下,实现数据的跨...
#### 一、Terracotta概述 Terracotta是一种分布式内存管理和数据共享平台,其核心产品BigMemory Max旨在帮助应用程序实现数据在内存中的高效管理,尤其适用于分布式服务器环境。Terracotta的核心优势在于能够跨多台...
为了便于使用Terracotta搭建Tomcat集群,Terracotta提供了一个名为“tim-tomcat”的插件。以下为搭建过程的具体步骤: 1. **准备环境** - **Apache Tomcat**:推荐使用Terracotta官方支持的版本,如Apache Tomcat...
Terracotta 3.7.7 是一款强大的分布式内存管理工具,它允许Java应用程序在多台服务器之间共享内存,从而实现数据的实时同步和高可用性。这款软件在2014年2月17日被下载并分享,尽管当时官方网站可能由于访问问题,...
Terracotta是一款强大的分布式内存管理工具,主要用于Java应用程序的集群化和数据共享。在这个场景中,我们关注的是Terracotta企业版(terracotta-ee)的4.1.2版本,以及与其配套的许可证文件(terracotta-license....
当与Terracotta结合使用时,Ehcache可以实现分布式缓存,使得多台服务器上的应用可以共享同一份缓存数据,从而构建高可用的集群环境。在本篇中,我们将深入探讨如何在Java项目中配置Ehcache与Terracotta来实现这一...
#### Terracotta简介 Terracotta是一种开源的分布式内存技术,它提供了一种简单有效的方式来管理和共享应用程序的数据。对于Java应用程序而言,Terracotta可以实现在多台服务器之间共享数据,尤其是Session数据,...
暗示我们关注的是Terracotta公司,这是一个专注于提供分布式数据管理解决方案的公司,特别是以其开源产品Ehcache和分布式内存计算平台Quintessa闻名。 Terracotta的技术使应用程序能够利用集群硬件的资源来提高性能...
terracotta-ee-3.5.2破解版
terracotta license.key ,
terracotta-toolkit-1.3-runtime-3.2.0.jar 集群实现JAR
terracotta-eclipse-plugin-3.7.7-2013-08-19_16-03-48.tar(terracotta的Eclipse插件) 发现官网挺卡的,有时候下不了,先传上来吧,供国内用户下载,这个算最新的吧。2014-02-17下载的。
记载了terracotta如何与tomcat、jetty等服务器的集群,解释了tc-config.xml中各个配置的作用