Terracotta提升故障转移支持 增加5个框架的群集功能

开源的JVM堆级群集/复制解决方案Terracotta于五月初发布了2.3版本,增加了基于TCP/IP的活动/备用服务器故障转移能力,群集成员事件通知,和新的预配置模块,用于快速群集Tomcat、Weblogic、Spring、Lucene、RIFE、Struts 1、Cglib和iBatis。Jetty的建立者正在构造群集的Ajax cometd应用,Wicket的领导者正在群集Wicket,他们都在使用Terracotta。RIFE的主要开发者Geert Bevin最近也被Terracotta招致旗下。有风投支持的Terracotta在去年12月以基于MPL的协议开放了源码。InfoQ对Terracotta的CTO Ari Zilka和产品运营副总Jeff Hartley做了采访。据Ari说Terracotta每月约有5000下载量。

Terracotta使用了星型(hub and spoke)架构,由中央服务器协调JVM间内存堆的改动,给每个需要的节点推送属性级的变动。在2.3版之前Terracotta的Hub使用共享硬盘(一个群集的NFS或者SAN)来实现活动/备用的群集故障容错方案,这样做的代价是高昂的。在2.3版中,Terracotta可以基于多播在集中服务器之间点对点地实现群集(实际应用服务器上的一个独立层被Terracotta群集)。Ari Zilka解释说:

“以前,备用服务器将启动并试图获取活动服务器在崩溃前一直持有的文件锁,并接手文件锁的持有。你甚至可以以任意顺序将备用服务器串联起来。在2.3中,活动/备用服务器的定义将不再根据谁先启动并获得文件锁,它将基于Terracotta Server间的P2P的投票。谁被选举为活动服务器,将把应用服务器层发来的内容群发到其它服务器上。它们都有着对方的心跳检测,如果一台活动服务器停止了,其它服务器会投票选出新的活动服务器。”

2.3版另一个值得注意的技术点是群集成员通知。据Jeff Hartley说:“当一个节点离开或加入集群,开发人员可以使用这个消息,比如在网格计算中的配置。”Ari继续说:“我们的用户之前要运行Terracotta DSO获得集群能力,然后运行JGroups来获得成员关系事件,现在可以停止使用JGroups而使用单纯的Terracotta了。”

Terracotta 2.3还改变了与其它流行框架的集成方法。相比之前为每个框架发行独立的版本,现在单个的Terracotta下载版包含了“预配置模块”,提供对Spring、Tomcat、Weblogic的预配置的定制化,2.3版还新增了Lucene、RIFE、Struts、Cglib、iBatis的预配置群集能力。对JBoss现在也有了正式支持。

Ari还解释了Terracotta与其他群集解决方案的比较:

我们真正引入的是Terracotta为JVM注入高可用性的的能力,使得多个物理的JVM看起来像一个或多个逻辑JVM。即使一台机器或一个JVM实体失效,你也不会丢失它正在运行的任何东西,因为其他的JVM可以无缝地获得失效者的工作内容。我们在非常高的级别上提供了高可用性,而不是在合理的可用性保证要求下伸缩的可用性。

未来版本的Terracotta会包含对Glassfish、Wicket和其他框架的集成。活动-活动的故障转移策略(有多个活动的Hub服务器)也会在今年稍后开始研发。请参阅Infoq权威的Introduction to Terracotta,还有Spring Webflow with Terracotta。

查看英文原文:Terracotta improves failover support, adds clustering for 5 more frameworks

译者简介:肖桦,网名“江南白衣”,开源JavaEE项目SpringSide发起人,现任广州电信研究院亿迅科技有限公司任设计中心设计主管。为InfoQ中文站贡献内容,请邮件至china-editorial[at]infoq.com。

 

你可能感兴趣的:(Terracotta提升故障转移支持 增加5个框架的群集功能)