`
whitesock
  • 浏览: 483762 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

Terracotta in Action (1)

    博客分类:
  • EE
阅读更多

1.  Introduction

    Terracotta 在其官方文档中的定义是一种透明的集群服务,也可以看成是JVM级别的集群。其中“透明”的含义并不是指已有程序无需做任何改动就可以使用Terracotta ,但是使用Terracotta 的代码无需实现特定的接口,也不依赖各种magic beans。通常意义上的“集群”是指多个应用通过网络通信、共享数据等,但是这种集群方式通常要求在应用程序中加入集群相关的代码。Terracotta 是在应用程序之下,JVM级别上的集群。这使得应用程序从复杂的集群相关的逻辑中解放出来,从而可以关注在业务逻辑本身。

 

 

    Terracotta是开源的,并且可以集成在很多主流的开源软件中,如Jetty、Tomcat、Spring、Geronimo和EHCache等。Terracotta 的核心组件有两个:客户端类库(client libraries)和服务端进程(Terracotta server),它们之间通过TCP/IP通信。Terracotta server独立于各个应用程序,它负责对集群的集中管理;客户端类库则用于加入集群。

    Terracotta 的最新版本是2.7.3,可以从http://www.terracotta.org/下载。其Windows安装文件100多M。默认的安装目录是C:\Program Files\Terracotta。安装后进入到bin目录执行start-tc-server.bat就可以启动Terracotta  server。从Windows开始菜单TerraCotta 2.7.3 -> Administrator Console启动Terracotta 的管理控制台。启动管理控制台后,使用默认的Server Host和JMX Port,点击Connect按钮。当TerraCotta管理控制台连接到Terracotta  server之后,会显示类似于下图的界面:


    其左侧树形控件的Servers节点会显示连接到的Terracotta server的详细信息。此时由于没有客户端程序连接到Terracotta server,因此Cluster Object节点和Clients节点内容为空。接下来演示一个Terracotta 附带的例子应用。通过Terracotta 2.7.3 -> Terracotta Welcome启动Terracotta Welcome程序,单击Sample Applications链接。在Sample Application Launcher中单击Shared Graphics Editor下边的Launch链接。在Shared Editor启动后,随意绘制几个图形。然后 回到Sample Application Launcher中再次单击Shared Graphics Editor下边的Launch链接。第二次启动的Shared Editor中会显示出之前绘制的图形,并且在任何一个Shared Editor中绘制的图形都会被同步到另外的Shared Editor中。接下来回到Terracotta 管理控制台,可以看到Clients节点中包含了两个客户端程序的信息。Cluster Object节点中包含了共享对象的信息。此时如果把所有的Shared Editor都关闭,那么Clients节点的内容变为空,但是Cluster Object节点中仍然包含了共享对象的信息。如果再次启动一个Shared Editor,那么这个Shared Editor中会显示之前的Shared Editor关闭时的图形。最后,通过bin目录中的stop-tc-server.bat停止Terracotta  server。

    最常见的应用Terracotta 的场景是分布式缓存、Session复制和网格计算等。通过Terracotta 在集群中共享的对象不必是可序列化的(但必须是portable的,portable是Terracotta 引进的一个概念,会在以后详细介绍)。当集群中的某个应用对共享对象进行修改的时候,这些修改会被同步到Terracotta server。Terracotta server可以对这些修改进行持久化保存,同时Terracotta server可以被配置成Master/Slave模式,这些都提供了高可用性。

    设想一个使用Terracotta 进行Session复制的场景: Tomcat A、B和C通过TerraCotta进行session复制,如果使用sticky load balancing,那么相同session的多个请求都会被发送到相同的Tomcat,比如A。A对该session的修改会被同步到Terracotta server,但是Terracotta server不会将这些修改同步到B和C(因为在B和C上不会访问到这个session),这样就减少了数据同步的次数。假设A由于某种故障而停止,那么load balancer可能会将该session的请求发送给B,在B的应用访问这个session的时候,TerraCotta才会将A之前对这个session的修改同步到B。此外,由于Terracotta 在同步的时候并没有使用序列化机制,因此它在同步数据的时候并不是每次都将整个session对象序列化后进行传输,而只是对session里改变的部分进行同步(Terracotta 使用了字节码加强的技术,拦截了包括内存读写在内的指令),这样就大大减少了网络传输的数据量。

  • 大小: 8.4 KB
  • 大小: 76.1 KB
7
0
分享到:
评论
3 楼 fujohnwang 2009-03-26  
highriver 写道

Terracotta最高支持1TB的数据量,指的是服务器中的硬盘与内存加起来吗?


我的理解,terracotta说白了只是将各个client的状态集中到服务器端来管理,所以服务器端应该保存所有客户端的状态数据,但是,保存策略可能会根据情况而定,比如是复制同步还是在服务器端在做partition之类。

没有细看,只是个人猜测,呵呵...

一个抽象化的虚拟机,但是需要分布式的通信,所以需要对java对象做些手脚, 指就是为啥


 
2 楼 fujohnwang 2009-03-26  
我觉得差不多你也该写这个主题了,呵呵
1 楼 highriver 2009-03-25  
Terracotta最高支持1TB的数据量,指的是服务器中的硬盘与内存加起来吗?

相关推荐

    Demo - EhCache Distributed Caching With Terracotta in GlassFish v3

    Demo of ehCache distributed caching with terracotta in glassFish v3 可以参考:http://blog.csdn.net/guobin0719/archive/2011/04/25/6361940.aspx

    terracotta

    1. **自动负载均衡**:Terracotta能够自动检测集群中的节点状态,根据每个节点的负载情况动态调整数据分布,确保数据均匀分布在各个节点上,避免单点过载,从而实现负载均衡。 2. **故障转移**:当某个服务器出现...

    Terracotta

    ### Terracotta:分布式内存管理解决方案 #### 一、Terracotta概述 Terracotta是一种分布式内存管理和数据共享平台,其核心产品BigMemory Max旨在帮助应用程序实现数据在内存中的高效管理,尤其适用于分布式服务器...

    terracotta集群tomcat步骤

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

    使用terracotta进行web session 同步

    1. **安装和配置Terracotta Server** 首先,你需要下载并安装Terracotta Server。配置包括设置Terracotta Server的端口、集群成员等信息。配置文件通常为`tc-config.xml`,这是你在压缩包中找到的文件。该文件用于...

    terracotta-3.7.7.tar.gz

    1. **分布式内存管理**:Terracotta使Java应用程序能够跨越多个节点共享内存空间,创建一个全局一致的数据视图。这意味着任何服务器上的更新都会立即反映到所有其他服务器上,显著提高了数据一致性。 2. **集群支持...

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

    ### 通过Terracotta实现基于Tomcat的Web应用集群 #### 概述 本文主要介绍了如何利用Terracotta与Tomcat构建高效的Web应用集群。在实际应用中,通过集群技术可以显著提升系统的可用性和伸缩性,特别是对于高流量、...

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

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

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

    1. **分布式内存管理**:Terracotta使Java应用能够透明地跨多台服务器共享内存,提供近乎实时的数据访问速度,消除了传统数据库的I/O瓶颈。 2. **无锁数据一致性**:通过其独特的无锁数据一致性模型,Terracotta确保...

    Terracotta 3.2.1 英文文档(CHM)

    Terracotta 3.2.1 英文文档

    terracotta-ee-3.5.2

    terracotta-ee-3.5.2破解版

    terracotta license.key

    terracotta license.key ,

    ehcache-terracotta代码配置

    1. Ehcache简介 Ehcache是基于内存的缓存解决方案,它提供了本地缓存、持久化存储和二级缓存等功能。通过将频繁访问的数据保存在内存中,Ehcache可以显著降低数据库的负载,提高应用程序响应速度。 2. Terracotta...

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

    1. **环境调整**:在原有的基础上,引入了Terracotta服务器端,并将其部署在负载均衡器(192.168.5.186)上,同时对两台Tomcat服务器进行了配置,使其成为Terracotta的客户端。 2. **测试过程**:重复未使用...

    terracotta 集群设置说明(中文)

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

    terracotta-eclipse-plugin-3.7.7(terracotta的Eclipse插件)

    terracotta-eclipse-plugin-3.7.7-2013-08-19_16-03-48.tar(terracotta的Eclipse插件) 发现官网挺卡的,有时候下不了,先传上来吧,供国内用户下载,这个算最新的吧。2014-02-17下载的。

    terracotta-toolkit-1.3-runtime-3.2.0.jar

    terracotta-toolkit-1.3-runtime-3.2.0.jar 集群实现JAR

Global site tag (gtag.js) - Google Analytics