什么是Terracotta for Spring

Terracotta for Spring是基于Spring应用的运行时,它为Spring 应用提供了透明的高性能集群支持,对应用代码和部署及配置流程影响都很小。
它通过在应用下面的堆级别进行集群而不是直接集群应用

这使得在需要扩展的应用开始设计时不考虑集群,而在应用需要扩展或者要保证高可用性和故障恢复时,他们只需要在Terracotta 配置文件中定义哪些Spring应用上下文中的beans需要进行集群。
Terracotta for Spring 使得应用能够被自动和透明的集群,还保证在集群间的语义和单节点一样。

从宏观上看,Terracotta for Spring提供了:
  HTTP session状态的集群:保证Spring Web Flow中的用户状态和扩展仓库或放入HTTP session的其它状态的高可用性和故障恢复能力。

  Spring bean的集群:Springbean的生命周期语义和域在集群间被保存,它们在“逻辑”上相同的ApplicationContext中。
            目前能被集群的bean类型是singleton和session scoped。  
            用户可以声明式配置哪个application contexts中的哪个bean需要被集群。

  透明集群POJO:不需要修改已有的代码,甚至不需要源代码。
          应用基于很少的声明式XML 配置文件,在载入期透明的生效。  
          Terracotta for Spring不需要实现Serializable, Externalizable或其它接口的类。  
          能这样实现的原因它并没有使用序列化,而只是将实际的差量和已经改变了的数据传输给当前需要的节点 (lazily)。

  虚拟内存管理:它也提供分布式垃圾收集和虚拟堆功能。
          比如,由于物理内存在需要时被换入换出,它能在一个4G RAM的机器上运行需要200G堆的Web应用。
          这也意味着你不需要关心Spring Web Flow 会话数据的大小是否超过了物理堆大小。

参考文档:
http://www.infoq.com/cn/articles/spring-web-flow-terracotta(用Spring Web Flow和Terracotta搭建Web应用->企业对扩展性和高可用性的需求)

http://terracotta.org/downloads/open-source/catalog(Terracotta下载)

posted @ 2012-01-06 11:42  万法自然~  阅读(600)  评论(1编辑  收藏  举报