云中的 Java 框架

标签 java cloud cluster-computing jclouds terracotta

因此,我试图最终掌握基于云的企业应用程序的工作原理,以及它们的架构通常是什么样子的。假设我使用像亚马逊这样的云提供商。我假设(如果我错了请纠正我)我会为 1 个以上的虚拟机付费,这些虚拟机将根据我的应用程序需要容纳一堆软件。

我对像 jcloudsTerracotta 这样的框架如何适应这幅画感到困惑。 jclouds 将自己标榜为“一个可帮助您在云中入门的开源库”,并列出了一些对我来说没有意义的重要功能,但没有有意义的示例。 Terracotta 自诩为高扩展集群框架。为什么我需要使用像 jclouds 这样的东西?我会将它用于哪些特定的具体场景?

同样,如果我使用 Amazon 作为我的云提供商,他们不是已经高度扩展了吗?为什么我需要云端的 Terracotta?

最佳答案

将应用程序“带入云端”至少有两个方面。

首先,您必须管理节点:在所有节点上部署您的应用程序、监控它们、启动新节点以实际扩展、检测和替换故障节点、实现新应用程序版本的一些更新方案,等等。通常这在没有工具的情况下是无法合理完成的。 JClouds 适合这里,因为它涵盖了这些要点中的一些

其次,您的应用程序本身必须“云就绪”。您不能将任意应用程序放在多个节点上并期望它能够很好地扩展。这里的要点是定义如何扩展对所有节点(SQL 数据库、NoSQL 数据存储、可能的 session 复制等)之间共享数据的访问。通常你使用一些现有的框架/应用服务器/数据存储来管理你的共享状态。 Terracotta 就是其中之一,基本上它提供了一种在多个节点上的 JVM 实例之间共享内存的有效方法。

关于云中的 Java 框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7587988/

相关文章:

java - 从 Spring EventListener 更新 Vaadin 8 UI

java - 是否可以使用 java 创建像 Instagram 这样的照片滤镜程序?

java - 在 onTouchEvent 和 dispatchTouchEvent 中返回 true 无法正常工作

.net - 云和虚拟主机(共享/专用)有什么区别?

java - 从 Android 中的 Openfire 服务器获取所有用户的列表

docker - Web容器和docker有什么区别?

security - Grails 在部署到云时获取客户端 IP?

python - PyRo 可以在生产中扩展吗?

apache - 在同一个 Apache 上运行 htdocs 和 clusterd tomcat webapp

hadoop - 如何在没有Internet连接的情况下在RHEL上安装和配置Apache Ambari