首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我应该如何承载可伸缩的工作进程?

我应该如何承载可伸缩的工作进程?
EN

Software Engineering用户
提问于 2012-06-12 13:07:59
回答 4查看 273关注 0票数 0

我们正在为企业设计一种新的架构。到目前为止,我们遵循的原则并不是开发你可以(可能购买和)部署的东西,也就是说,不要重新发明任何轮子。

这样,我们就决定了CQRS,RabbitMQ,Riak和其他一些事情。不过,我们仍然需要编写/一些/业务代码,这些代码将以工作进程的形式出现,它将使用消息队列中的命令,并在任何副作用之后,将事件生成到另一个消息队列上。这背后的想法是,通过竞争-消费者的设计,我们将有一个可伸缩的设计立竿见影。

一种选择是编写一个管理基础结构,该基础结构将知道如何:

  • 部署代码
  • 实例化过程
  • 杀灭过程
  • 更新配置

IE提供容错和可伸缩性。而且,这正是GAE和Heroku为您所做的事情,但是在公共环境和我们的组织中,公共是不好的。

我的问题是,是否有一个开箱即用的解决方案,我们可以用来招待我们的消费者?就像私有云或私人服务平台。私人Heroku或GAE。是否有某种软件或软件产品,我们可以做所有这些事情,从而获得可伸缩性和对我们的消费者的容错?

EN

回答 4

Software Engineering用户

回答已采纳

发布于 2012-06-27 19:08:21

这取决于您的缩放需求。

如果您没有过多的“快速规模”需求(即增长很小,您可以预测什么时候需要一个新的盒子来处理负载并有时间提供它),不要太担心它。您可以很好地使用一种自动提供服务器的机制(例如,木偶),确保所有底层技术在需要时易于集群,或者如果不需要扩展,则很容易实现故障转移。

另一方面,如果这还不够.你有麻烦了。构建真正的云并不简单,它需要大量的资源。这方面有一些解决办法--桉树和OpenStack。

幸运的是,几乎没有人需要后者。请仔细评估你是否需要一个真正的具有自动动态缩放功能的云解决方案--你可能不需要。如果你不需要并且错误地实现了一个解决方案,那么你很有可能永远达不到你的目标,或者你会在非动态解决方案上付出难以置信的代价达到它。

在任何情况下,在更纯粹的软件方面,您有一些东西,比如芹菜,它很好地实现了这一点;以“任务式”的方式编写代码是非常简单和无痛的。

票数 1
EN

Software Engineering用户

发布于 2012-12-02 11:13:18

云服务提供商已经开始解决这一问题。具体而言,请查阅:

  1. Iron.io -他们有一个叫做"IronWorker“的产品,它支持多种语言
  2. 赫鲁库 --他们提供“工薪阶层”
  3. Windows他们提供的云服务有web和工作流程
票数 1
EN

Software Engineering用户

发布于 2016-09-12 20:39:14

  • 库伯内斯做了很多你提到的事情。如果可以对应用程序进行文档化,则可以在私有云中使用Kubernetes扩展应用程序。
  • CapeDwarf是Google的开源替代品,允许您在私有云中运行GAE应用程序。然而,这个项目看上去相当沉寂。
票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/152517

复制
相关文章

相似问题

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