`
webcode
  • 浏览: 6095516 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

Terracotta,POJO开发模型的最后一块拼图

阅读更多

TerraCotta 通过将POJO对象在群集内下的共享,让POJO不再局限于SNA(Share Nothing Architect)的架构,比较透明的支持了集群模式,可谓POJO开发模型的最后一块拼图。

实它的原理很简单,本身是一个中央式的Cache服务器。在应用启动命令中添加Terracotta参数,Classloader就会根据配置文件在JVM级以AOP方式修改ByteCode,用户透明地将对象存储于中央服务器。

为了性能,它以对象属性而不是整个对象为存储单位;为了可用性,它本身也支持主备集群。


研究院和项目组的同事们早就在他们的地盘上用上了,这几天自己也跟风了一把。

很喜欢这种"前商业项目",一般都会有不错的工具。
  • Sessions Configurator 。以Debug模式将tc-confg.xml运行在一个预配置的双机集群下,让你观察共享对象的数值变化,出现运行时错误时,提示配置文件缺漏错误的修正。
  • Eclipse插件。通过对着任意的类、属性、函数点右键来设定tc-config.xml。

说是用户透明,其实只是最美好的愿望,可能还是有些代码修改:

  • 同步问题。原本单机运行的程序,改成集群运行,跑不掉的是先要将自己共享对象类的代码改为线程安全的,如使用线程安全的ConcurrentHashMap、AtomicInteger属性,或在访问属性的代码中加入synchronized控制。然后在xml中配置Terracotta的autolock将锁其扩展到群集范围,设定以锁为边界的批量更新属性的事务。
    反向理解TC的CTO同志关于调优的讲话,锁没搞好的话对性能影响挺大。
  • 本地资源属性。有些很local的属性如文件句柄是没办法共享的,这时候就需要配置为Transients 属性。这种属性在另一个JVM里就会被强制设为Null。怎么办呢?推荐的做法是另写一个初始化这些属性的init函数,在tc-config.xml中配置调用。更少侵入的做法是直接在tc-config.xml中写beanshell脚本,不过这脚本不好写。

最后TC承担了实现POJO集群的功能,但TC Server本身就存在单点故障的危险,需要配成Cluster模式。在TC的Persistent HA Cluster模式中,所有数据会Persist到磁盘,Cluster中永远只有一个Active Node,其他节点就作为Passive Nodee。Active Node的失效切换与Client的重连都是透明的。Passive 与Active Node使可以用同一块支持文件锁的磁盘空间,也可以让Active Node将所有变化通过网络同步到Passive Node上。一般采用后者。

另外,已经可以买国内的技术支持服务了。唯一遗憾要到12月份的TC2.7版,才会支持Glassfish 2。

分享到:
评论

相关推荐

    terracotta

    Terracotta是一款开源软件,它的核心功能在于提供了一个分布式内存模型,能够将Java对象透明地分布到多台服务器上。这种分布式内存管理方式允许应用程序在不修改代码的情况下,实现数据的跨服务器共享,极大地提升了...

    terracotta集群tomcat步骤

    Terracotta集群Tomcat的配置是一项复杂而关键的任务,它涉及到分布式系统中的高可用性和负载均衡。以下将详细解释这个过程中的各个步骤和相关知识点。 首先,安装Terracotta 3.2.1版本是非常基础的一步。需要注意的...

    Terracotta

    #### 一、Terracotta概述 Terracotta是一种分布式内存管理和数据共享平台,其核心产品BigMemory Max旨在帮助应用程序实现数据在内存中的高效管理,尤其适用于分布式服务器环境。Terracotta的核心优势在于能够跨多台...

    Terracotta+tomcat集群配置详细说明(写了一晚上。。)

    Terracotta 是一款开源软件,它提供了一种在 Java 应用程序之间实时共享数据的解决方案。其核心思想是通过监听和同步数据变更来减少网络通信量。当一个节点上的数据发生变化时,Terracotta 只同步变化的部分至 ...

    使用terracotta进行web session 同步

    Terracotta是一款开源软件,它提供了一种高效且可靠的解决方案,允许在集群环境中实现Web Session的共享,从而确保用户在不同服务器间的无缝切换。本文将深入探讨如何利用Terracotta来实现Web Session的同步。 ** ...

    terracotta-3.7.7.tar.gz

    8. **客户端支持**:Terracotta不仅提供服务端解决方案,还有对应的客户端库,使得开发人员可以方便地在应用中利用其分布式特性。 在使用Terracotta 3.7.7时,需要注意的是,虽然该版本相对较新,但可能没有包含...

    terracotta-ee-4.1.2.jar,terracotta-license.key

    Terracotta是一款强大的分布式内存管理工具,主要用于Java应用程序的集群化和数据共享。在这个场景中,我们关注的是Terracotta企业版(terracotta-ee)的4.1.2版本,以及与其配套的许可证文件(terracotta-license....

    terracotta插件完整版

    terracotta完整开发插件,可以作为eclipse的插件,也可以单独使用,功能齐全;

    通过_Terracotta实现基于Tomcat的Web应用集群

    为了便于使用Terracotta搭建Tomcat集群,Terracotta提供了一个名为“tim-tomcat”的插件。以下为搭建过程的具体步骤: 1. **准备环境** - **Apache Tomcat**:推荐使用Terracotta官方支持的版本,如Apache Tomcat...

    http://www.terracotta.org/

    暗示我们关注的是Terracotta公司,这是一个专注于提供分布式数据管理解决方案的公司,特别是以其开源产品Ehcache和分布式内存计算平台Quintessa闻名。 Terracotta的技术使应用程序能够利用集群硬件的资源来提高性能...

    ehcache-terracotta代码配置

    当与Terracotta结合使用时,Ehcache可以实现分布式缓存,使得多台服务器上的应用可以共享同一份缓存数据,从而构建高可用的集群环境。在本篇中,我们将深入探讨如何在Java项目中配置Ehcache与Terracotta来实现这一...

    Terracotta 3.2.1 英文文档(CHM)

    Terracotta 3.2.1 英文文档

    使用terracotta实现session共享的证实实验

    总之,通过使用Terracotta实现Session共享,不仅能够显著提升分布式系统的服务质量,还能为开发者带来更高效、更可靠的开发体验。然而,这一过程并非一蹴而就,需要细致的规划、深入的技术理解和持续的实践探索。

    terracotta-ee-3.5.2

    terracotta-ee-3.5.2破解版

    一种基于Terracotta的透明分布式CometD引擎实现.pdf

    5. **Terracotta技术**:Terracotta提供了一种分布式内存模型,可以将Java对象的状态在多个节点之间同步,使得应用在分布式环境下保持透明性。 6. **透明分布式**:通过Terracotta,CometD引擎的分布式实现变得对...

    terracotta license.key

    terracotta license.key ,

    terracotta 集群设置说明(中文)

    记载了terracotta如何与tomcat、jetty等服务器的集群,解释了tc-config.xml中各个配置的作用

Global site tag (gtag.js) - Google Analytics