Terracotta in Action(1)文章分类:Java编程 关键字: terracotta1. Introduction Terracotta 在其官方文档中的定义是一种透明的集群服务,也可以看成是JVM级别的集群。其中“透明”的含义并不是指已有程序无需做任何改动就可以使用Terracotta ,但是使用Terracotta 的代码无需实现特定的接口,也不依赖各种magic beans。通常意义上的“集群”是指多个应用通过网络通信、共享数据等,但是这种集群方式通常要求在应用程序中加入集群相关的代码。Terracotta 是在应用程序之下,JVM级别上的集群。这使得应用程序从复杂的集群相关的逻辑中解放出来,从而可以关注在业务逻辑本身。
Terracotta是开源的,并且可以集成在很多主流的开源软件中,如Jetty、Tomcat、Spring、Geronimo和EHCache等。Terracotta 的核心组件有两个:客户端类库(client libraries)和服务端进程(Terracotta server),它们之间通过TCP/IP通信。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。 |
|