首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >云中的Java框架

云中的Java框架
EN

Stack Overflow用户
提问于 2011-09-28 18:47:01
回答 2查看 3.1K关注 0票数 5

因此,我正试图最终了解基于云的企业应用程序是如何工作的,以及它们的体系结构通常是什么样的。比如说,我使用了像亚马逊这样的云提供商。我假设(如果我错了请纠正我的话),我将支付1+虚拟机的费用,这些虚拟机将根据我的应用程序的需要装载一堆软件。

我很困惑像、jclouds、Terracotta这样的框架是如何融入其中的。jclouds自诩为“帮助您在云中入门的开源库”,并列出了一些没有有意义的示例对我来说意义不大的巨大特性。Terracotta自诩为一个高比例的集群框架。为什么我需要使用像jclouds这样的东西?我会用它来做什么具体的设想呢?

再一次,如果我使用亚马逊作为我的云提供商,他们不是已经是高度规模的吗?为什么我需要云中的兵马俑?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-28 22:36:51

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

首先,必须对节点进行管理:在所有节点上部署应用程序,监视它们,启动新节点以实际扩展,检测和替换失败节点,实现新应用版本的一些更新场景等等。通常,没有工具就无法合理地做到这一点。JClouds适用于这里,因为它涵盖了其中的一些要点。

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

票数 5
EN

Stack Overflow用户

发布于 2011-09-28 19:11:11

因此,您有您的Linux机器(虚拟实例),它运行良好。但突然之间,你需要扩大规模--也就是说,当需求上升时,你需要启动更多的实例,并在需求下降时关闭它们。因此,您可以做的基本上是使用Amazon启动EC2实例--为它们提供从管理控制台(甚至更多)可以做的一切。但是使用amazon的API基本上把你的手绑在了amazon上。对于像JCloud这样的框架,您所做的事情类似于(这是伪代码):

代码语言:javascript
复制
CloudProvider provider = new CloudProvider.getProvider("Amazon"); 
provider.authenticate("username", "password");
provider.startInstance("some option", numOfInstances);

因此,假设您必须进行扩展,并且您使用JClouds部署在亚马逊上-您将使用类似于上面的内容,但是突然您决定从Amazon迁移到Rackspace,因此,您可以更改应用程序的所有逻辑,而不是重新设计与提供实例和使用它们有关的所有逻辑。

代码语言:javascript
复制
CloudProvider provider = new CloudProvider.getProvider("Amazon");

到某种程度上

代码语言:javascript
复制
CloudProvider provider = new CloudProvider.getProvider("RackSpace");

继续使用身份验证方法和startInstance,但是库将讨论如何实际“将”此库方法“转换”到给定的云提供者支持的特定方法。基本上,这是一种抽象代码的方法,它必须处理底层云提供商--只要它提供服务,您就不应该关心它是谁,对吗?

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7587988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档