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
分享到:
相关推荐
Demo of ehCache distributed caching with terracotta in glassFish v3 可以参考:http://blog.csdn.net/guobin0719/archive/2011/04/25/6361940.aspx
1. **自动负载均衡**:Terracotta能够自动检测集群中的节点状态,根据每个节点的负载情况动态调整数据分布,确保数据均匀分布在各个节点上,避免单点过载,从而实现负载均衡。 2. **故障转移**:当某个服务器出现...
### Terracotta:分布式内存管理解决方案 #### 一、Terracotta概述 Terracotta是一种分布式内存管理和数据共享平台,其核心产品BigMemory Max旨在帮助应用程序实现数据在内存中的高效管理,尤其适用于分布式服务器...
Terracotta集群Tomcat的配置是一项复杂而关键的任务,它涉及到分布式系统中的高可用性和负载均衡。以下将详细解释这个过程中的各个步骤和相关知识点。 首先,安装Terracotta 3.2.1版本是非常基础的一步。需要注意的...
1. **安装和配置Terracotta Server** 首先,你需要下载并安装Terracotta Server。配置包括设置Terracotta Server的端口、集群成员等信息。配置文件通常为`tc-config.xml`,这是你在压缩包中找到的文件。该文件用于...
1. **分布式内存管理**:Terracotta使Java应用程序能够跨越多个节点共享内存空间,创建一个全局一致的数据视图。这意味着任何服务器上的更新都会立即反映到所有其他服务器上,显著提高了数据一致性。 2. **集群支持...
### 通过Terracotta实现基于Tomcat的Web应用集群 #### 概述 本文主要介绍了如何利用Terracotta与Tomcat构建高效的Web应用集群。在实际应用中,通过集群技术可以显著提升系统的可用性和伸缩性,特别是对于高流量、...
1. ** Terracotta 基本原理** Terracotta 是一款开源软件,它提供了一种在 Java 应用程序之间实时共享数据的解决方案。其核心思想是通过监听和同步数据变更来减少网络通信量。当一个节点上的数据发生变化时,...
1. **分布式内存管理**:Terracotta使Java应用能够透明地跨多台服务器共享内存,提供近乎实时的数据访问速度,消除了传统数据库的I/O瓶颈。 2. **无锁数据一致性**:通过其独特的无锁数据一致性模型,Terracotta确保...
Terracotta 3.2.1 英文文档
terracotta-ee-3.5.2破解版
terracotta license.key ,
1. Ehcache简介 Ehcache是基于内存的缓存解决方案,它提供了本地缓存、持久化存储和二级缓存等功能。通过将频繁访问的数据保存在内存中,Ehcache可以显著降低数据库的负载,提高应用程序响应速度。 2. Terracotta...
1. **环境调整**:在原有的基础上,引入了Terracotta服务器端,并将其部署在负载均衡器(192.168.5.186)上,同时对两台Tomcat服务器进行了配置,使其成为Terracotta的客户端。 2. **测试过程**:重复未使用...
记载了terracotta如何与tomcat、jetty等服务器的集群,解释了tc-config.xml中各个配置的作用
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 集群实现JAR