Terracotta 3.2.1简介 (一)

博客分类:

  • 企业应用面临的问题
  • Java&Socket
  • 开源组件的应用
hibernatejava集群服务器EhcacheQuartzTerracott 

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配置可以在配置界面中实时修改、即时生效

待续。。。

转载于:https://www.cnblogs.com/LvLoveYuForever/p/6560520.html

Terracotta相关推荐

  1. Terracotta tc-config.xml配置说明(这个真的是转的)

    2019独角兽企业重金招聘Python工程师标准>>> <?xml version="1.0" encoding="UTF-8" ?&g ...

  2. 用Spring Web Flow和Terracotta搭建Web应用

    什么是Spring Web Flow? Spring Web Flow是Spring Framework中的web应用组件,它提供了一种编写有状态和基于会话的web应用的简便手段.Spring Web ...

  3. 分布式Ehcache Terracotta使用

    2019独角兽企业重金招聘Python工程师标准>>> 分布式Ehcache集群间数据同步 EhCache 是进程中的缓存系统,一旦将应用部署在集群环境中,每一个节点维护各自的缓存数 ...

  4. Tomcat 下 Memcached 集群与 Terracotta 集群比较

    总结:Terracotta 集群配置要比Memcached 集群简单,但Terracotta 集群启动的速度要比Memcached 集群慢,性能Terracotta 集群要比Memcached 集群好 ...

  5. 一台服务器上部署多个Terracotta的方法

    在window server 2003 下,利用apache2.2.11+tomcat6+terracotta 群集不能复制session(http://forums.terracotta.org/f ...

  6. Terracotta Express Model 和 Terracotta Customized Model

    在网上看到很多关于Terracotta快速安装和自定义安装的文章,我觉得我始终无法明白到底两者有什么区别,今天突然仔细地想想,又好像明白了. 关于Terracotta Express Model 假如 ...

  7. Terracotta - 分布式共享对象

    Terracotta是一种分布式java集群技术,它巧妙得隐藏了多个分布式JVM带来的复杂性,使得java对象能够透明得在多个JVM集群中进行分享和同步,并能够进行持久化.从某种意义上讲它类似于had ...

  8. Terracotta + Apache + Tomcat 负载均衡实践篇

    前言 这两天在学习ehcache分布式缓存方案时接触到了Terracotta.几年前刚做开发工作时想用Terracotta集群SpringBeans,当时网上资料少,尝试很久没成功就没继续下去了. 于 ...

  9. Terracotta学习文档

    Terracotta 学习文档    目 录 1.    引言..................................................................... ...

  10. Terracotta 3.2.1简介 (一)

    Terracotta开源项目以及Terracotta公司 Terracotta是一款由美国Terracotta公司开发的著名开源Java集群平台.它在JVM与Java应用之间实现了一个专门处理集群功能 ...

最新文章

  1. 如何使用canvas绘图
  2. 为什么下载源码包需要到官网上去下载?
  3. SPI接口比IIC速度快的理解
  4. 【转】3.4(译)构建Async同步基元,Part 4 AsyncBarrier
  5. python的发展趋势图_用Python绘制趋势图
  6. 节后荐书:Python、PyQt5、Kotlin(评论送书)
  7. 《21天学通Java(第7版)》—— 2.10 认证练习
  8. 那些经典好玩的在线游戏:魂斗罗,超级马里奥,坦克大战
  9. Retina屏下的图片优化
  10. win10系统文件拖拽卡顿_win10鼠标拖动窗口有延迟的三种解决方法
  11. dh算法 java_java密钥交换算法DH定义与应用实例分析
  12. 无需电脑的多平台推流编码器
  13. 《余世维有效沟通》学习笔记
  14. 数学建模中的ARMA模型和ARIMA模型的使用实例(含代码)
  15. The Copernicus Global Land Service (CGLS)账号注册与数据下载
  16. matlab 电化学程序,基于MATLAB的电化学滴定曲线导数变换的实现
  17. 人物介绍的排版【小白进】
  18. 某型雷达的报文收发实录
  19. perl中our的用法
  20. 我与今目标的爱恨情仇

热门文章

  1. 声纹识别加持,苹果HomePod Mini能否“声”而不同?
  2. 如何使IE浏览器窗口打开时最大化
  3. 【Busybox】Busybox源码分析-01 | 源码目录结构和程序入口
  4. 5.2 对射式红外传感器旋转编码器计次
  5. 万兆网SFP/SFP+设计
  6. tomcat-如何调试源码?
  7. 为什么我的话总没说服力
  8. RTC实时时钟(LCD显示)
  9. 感谢我的联科数据女神-----董禹
  10. WinAPI: OffsetRect - 移动矩形