【问题标题】:Does it make sense to combine Terracotta with Java EE Application Server Cluster?将 Terracotta 与 Java EE Application Server Cluster 结合起来有意义吗?
【发布时间】:2011-03-23 09:05:11
【问题描述】:

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

Terracotta 是开源的 JVM 级别的集群软件,用于 爪哇。它提供集群作为 运行时基础设施服务,它 简化了聚类的任务 Java 应用程序,通过集群 应用程序下的 JVM, 而不是集群应用程序 自己。

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

我的问题:如果您还使用 Java EE 应用程序服务器(例如 WebSphere AS),它已经支持应用程序集群,那么使用 Terracotta 是否有意义? 什么时候应该结合使用,为什么?

【问题讨论】:

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


    【解决方案1】:

    苏雷什, 在 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。

    应用服务器集群不提供缓存。集群用于负载平衡和故障转移,并简化了一些管理任务。集群提高了水平可扩展性,缓存提高了垂直可扩展性。两者兼备是一个杀手组合:)

    【讨论】:

    • 你的最后一部分是一个非常好的、简洁的解释。谢谢。
    【解决方案2】:

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

    【讨论】:

    • 感谢您的详细解释。实际上,我理解这种将 Java SE 应用程序“转换”为“集群应用程序”的用例。在这种情况下,兵马俑真的很有意义!但我的问题是:将 Terracotta 与 JEE 应用程序服务器结合起来是否有意义。在我看来,这些应用程序服务器已经提供了相同的功能(例如 WebSphere Application Server 集群),即您将一个应用程序部署到多个集群,但仍然开发一个非集群应用程序......那么有没有组合的用例Terracotta 和 JEE 应用服务器集群?
    猜你喜欢
    • 2018-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-28
    相关资源
    最近更新 更多