Terracotta 开源 项目以及Terracotta公司 Terracotta是一款由美国Terracotta公司开发的著名开源Java集群平台。它在JVM与Java应用之间实现了一个专门处理集群功能的抽象层,以其特有的增量检测、智能 定向 传送、分布式协作、服务器镜像、分片等技术,允许用
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 构建的代码的集群化升级。
maxElementsInMemory="10000"
eternal="false"
timeToLiveSeconds="120"
/>
maxElementsInMemory="10000"
eternal=]true]>
maxElementsInMemory="10000"
timeToLiveSeconds="3000">
整合后的分布式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配置可以在配置界面中实时修改、即时生效
待续。。。
查看更多关于Terracotta3.2.1简介(一)的详细内容...