专访开源项目Amoeba架构师陈思儒
DBA notes站长冯大辉(Fenng)代表InfoQ中文站采访了分布式数据库Proxy开源项目Amoeba的架构师和主要开发者陈思儒,内容包括Amoeba项目的起因、功能及其愿景等。
作者 Floyd Marinescu译者 肖桦 发布于 2007年5月24日 下午7时0分
开源的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。
DBA notes站长冯大辉(Fenng)代表InfoQ中文站采访了分布式数据库Proxy开源项目Amoeba的架构师和主要开发者陈思儒,内容包括Amoeba项目的起因、功能及其愿景等。
作为三期系列文章的第二部分,本文延续了上一期内容,介绍了RichFaces,包括如何把RichFaces集成到之前提到的示例应用中、如何部署RichFaces porlet和RichFaces的多种特性和功能。
Amazon Web Services(AWS)的传道者Jeff Barr讨论了SimpleDB、S3、EC2、SQS、云计算、Amazon的不同服务如何与应用交互、AWS的起源、SimpleDB和微软SQL Server Data Services、AWS cloud的全球化、三月份的AWS停机。
Erlang的并发模型很有名,它的健壮性也很有名。但其他方面呢?在这篇文章里,Dennis Byrne演示了如何用Erlang建立内部DSL。
本视频主要以FreeWheel为例,对一个基于Rails的企业级应用进行了剖析。其中包括:FreeWheel的架构、部署、数据库的问题、REST API、敏捷开发过程、如何去写测试以及持续集成等等。
JavaFX显示了Sun的Java系列产品市场方向的一个重大转变。随着1.0版的即将发布,InfoQ以JavaFX预览版为参考,与Sun高级工程师Joshua Marinacci探讨了即将发布的1.0正式版。
本文主要讲述了如何用JBoss Portlet Container 和JBoss Portlet Bridge创建新项目,怎样配置一个JSF应用去使用JBoss Portlet Bridge,以及JBoss Portlet Bridge所具备的功能。
没有回复
回复