java - 将 Terracotta 与 Java EE 应用服务器集群结合起来有意义吗?

标签 java jakarta-ee scalability cluster-computing terracotta

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

Terracotta is an open source JVM-level clustering software for Java. It delivers clustering as a runtime infrastructure service, which simplifies the task of clustering a Java application, by clustering the JVM underneath the application, instead of clustering the application itself.

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

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

最佳答案

苏雷什, 当在 Java EE 应用服务器中使用时,Terracota 确实显着提高了性能。

Terracotta Server 可以被认为是所有机器都可以利用的共享 L2。访问 L2 的成本比访问 L1 的成本更高 — 对于 Terracotta,这是因为 L2 跨所有 JVM 的网络连接 — 但 L2 比其他 I/O(例如数据库或数据库)便宜。否则将被调用的消息传递。

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

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

关于java - 将 Terracotta 与 Java EE 应用服务器集群结合起来有意义吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5402878/

相关文章:

java - 如何清除/重置/打开输入流,以便它可以在 Java 中的 2 种不同方法中使用?

mysql - 为分布式数据库配置 Web 应用程序

.net - Python MVC 框架、.NET、Rails(中间件)

java - PaginationSample Javafx 无法为最终变量分页赋值

java - Eclipse 在构建 android 项目时删除 java 文件

java - 无法从 CursorWindow 读取第 0 行第 5 列。在访问数据之前确保游标已正确初始化

java - Grails 将 HttpInputStream 渲染为 pdf

java - 如何在 Spring MVC 中为某个类自定义 JSON

java - 如何分离dto映射逻辑

sql - 可扩展数据库标记模式