将Terracotta与Java EE Application Server Cluster相结合是否有意义?

时间:2011-03-23 09:05:11

标签: java java-ee scalability cluster-computing terracotta

Terracotta用于扩展JVM应用程序。以下是维基百科的简短描述:

  

Terracotta是一个开源的   JVM级别的集群软件   Java的。它提供集群作为   运行时基础结构服务   简化了群集的任务   Java应用程序,通过聚类   应用程序下面的JVM,   而不是集群应用程序   本身。

如果您想扩展Java SE应用程序,我明白为什么要使用Terracotta。

我的问题:如果您还使用已支持应用程序集群的WebSphere AS等Java EE Application Server,那么使用Terracotta是否合理? 什么时候应该同时使用它们和为什么?

2 个答案:

答案 0 :(得分:4)

苏雷什, 在Java EE应用程序服务器中使用时,Terracota确实提供了显着的性能提升。

The Terracotta Server can be thought of as a shared L2 for all machines to leverage. Access to the L2 costs more than access to the L1—in the case of Terracotta, this is due to the fact that the L2 is across a network connection from all JVMs—but the L2 is cheaper than other I/O such as database or messaging that would otherwise be invoked.

相比之下,Zing Platform(Azul-Systems)通过消除堆大小限制进行扩展,允许每个实例无缝且弹性地扩展到数百GB的堆内存和数十个内核。传统的JVM无法扩展到超过2-3 GB。

应用程序服务器群集不提供缓存。群集用于负载平衡和故障转移,并简化了很少的管理任务。群集可提高水平可伸缩性,缓存可提高垂直可伸缩性。两者都是杀手组合:)

答案 1 :(得分:0)

分布式缓存是Terracotta最有用的用例之一,但不仅如此。 Terracotta为Java运行时提供了集群(真正意义上的)作为基础结构级服务。这意味着通过网络部署在不同Java堆上的应用程序感觉就像它们在同一个JVM中运行一样,访问同一个堆。您可以将Terracotta视为将J2SE转换为J2CE(Java 2集群版)的技术。