热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Terracotta3.2.1简介(一)

Terracotta开源项目以及Terracotta公司Terracotta是一款由美国Terracotta公司开发的著名开源Java集群平台。它在JVM与Java应用之间实现了一个专门处理集群功能的抽象层,以其特有的增量检测、智能定向传送、分布式协作、服务器镜像、分片等技术,允许用

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 EhcacheHibernate二级缓存

Ehcache是独立于Terracotta开发的开源Java缓存项目。由于其高效、易用等特点,已经被超过70%Java开发人员直接活间接使用。

Ehcache也是Hibernate项目缺省,也是功能支持最完备的耳机缓存解决方案。

Terracotta2009年收购了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扩展成分布式缓存一样简单。其优势也可以自动继承。

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

待续。。。

推荐阅读
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • 本文介绍了使用cacti监控mssql 2005运行资源情况的操作步骤,包括安装必要的工具和驱动,测试mssql的连接,配置监控脚本等。通过php连接mssql来获取SQL 2005性能计算器的值,实现对mssql的监控。详细的操作步骤和代码请参考附件。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
  • 本文讨论了如何使用Web.Config进行自定义配置节的配置转换。作者提到,他将msbuild设置为详细模式,但转换却忽略了带有替换转换的自定义部分的存在。 ... [详细]
  • Centos下安装memcached+memcached教程
    本文介绍了在Centos下安装memcached和使用memcached的教程,详细解释了memcached的工作原理,包括缓存数据和对象、减少数据库读取次数、提高网站速度等。同时,还对memcached的快速和高效率进行了解释,与传统的文件型数据库相比,memcached作为一个内存型数据库,具有更高的读取速度。 ... [详细]
  • 解决Sharepoint 2013运行状况分析出现的“一个或多个服务器未响应”问题的方法
    本文介绍了解决Sharepoint 2013运行状况分析中出现的“一个或多个服务器未响应”问题的方法。对于有高要求的客户来说,系统检测问题的存在是不可接受的。文章详细描述了解决该问题的步骤,包括删除服务器、处理分布式缓存留下的记录以及使用代码等方法。同时还提供了相关关键词和错误提示信息,以帮助读者更好地理解和解决该问题。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 本文讨论了在Spring 3.1中,数据源未能自动连接到@Configuration类的错误原因,并提供了解决方法。作者发现了错误的原因,并在代码中手动定义了PersistenceAnnotationBeanPostProcessor。作者删除了该定义后,问题得到解决。此外,作者还指出了默认的PersistenceAnnotationBeanPostProcessor的注册方式,并提供了自定义该bean定义的方法。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
author-avatar
轩然
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有