Windows Azure中同一实例上的多个角色

Windows Azure中同一实例上的多个角色

问题描述:

是否可以在同一实例中部署多个角色?Windows Azure中同一实例上的多个角色

我有三个Web角色(网站在asp.net mvc3和两个WCF服务实例)和两个工作者角色(Windows服务)。

这个应用程序的负载很小,所以我不想在Windows Azure中创建这么多的实例,并且现在支付所有的实例。相反,我希望将我的所有应用程序部署在同一个实例中,稍后如果我将从我的应用程序中获得一些收入,请将其更改。

我用Google搜索,发现了一些论坛的帖子超过了它的可能有的比这是不可能的......但我无法找到信息,该怎么办呢?

所以两个问题: 这可能吗? 我该怎么办?

与@Simon的答案略有不同......角色实际上是Windows Server 2008 VM的模板(请参阅我在this SO question上的答案)。每个角色都有一个或多个实例,并且您可以在任何角色上运行您想要的任何内容。

您绝对可以在一个角色中运行您的网站和所有WCF服务。现在,您将把应用程序向上/向下(VM大小)和out/in(实例数)扩展为单个刻度单位。比方说,如果你的WCF服务是CPU密集型的,导致你的web访问者虚拟机实例变慢,你需要扩展到足以处理这些访问者。

一旦你达到了很大的流量负载,它是值得考虑分开的角色。这样,您可以决定虚拟机大小和数量,每个角色。也许你有2或3个Web角色的小实例来处理你网站上的用户流量,也可能有2个Worker角色的Medium实例来处理WCF服务(就像一个例子)。您拥有的角色越多,您拥有的细粒度缩放,​​但您必须至少运行每个角色的一个实例,这会提升您的“系统静止”基准成本。

+0

如果我在一个实例中将我的所有网站和wcf服务部署为一个webrole - 我无法重新部署系统的某些部分?正确?例如,如果我想在WCF服务中进行更改 - 我必须重新部署所有:wcf服务和网站? – 2012-02-20 19:10:20

不,角色是实例,每个角色都占用整个虚拟机。但是,您可以将多个网站整合到一个角色中,这将允许您将所有MVC和WCF应用程序部署到单个Web角色中。您需要将网站添加到sites element in the ServiceDefinition。似乎有几篇关于如何完成的博文 - herehere

对于工作者角色,我建议您创建一个单一的辅助角色并合并在这些角色中完成的工作,例如为每个正在监视的队列启动一个单独的线程。这由欧金尼奥佩斯StackOverflow answer

我不建议尝试将工作角色功能合并到网络角色中。除了它对体系结构没有意义,对于物理基础结构(IIS vs不是IIS)而言,还存在潜在的问题,例如当工作角色回收时(线程未由IIS启动的线程可能突然终止),终止运行线程

+0

这不是真正的strcitly。 as'user728584'指出一个web角色总是也是一个工作者角色。现在 - 我不一定把这两者结合起来是一个好主意 - 但它肯定有可能作为每个网络角色的Run()方法 - http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com /2010/12/how-to-combine-worker-and-web-role-in.html – 2012-02-19 18:34:16

+0

网络和工作者角色的结合是一种破坏。是.NET组件的角色定义还是Azure结构如何处理它?虽然示例表明它*似乎可行,但您必须了解织物如何处理关闭,回收和监控等。我不理解这些细节,但怀疑存在'问题' – 2012-02-19 18:40:22

+2

角色的定义是“虚拟机”。而且没有破解,将功能组合到单个服务器(无论是物理还是虚拟)。人们多年来一直这样做。在Windows Azure中,它取决于您的可伸缩性和可用性程度。使用多个实例在单个角色中运行网站和后台任务并不是什么窍门,就像将功能分离为单独的虚拟机并非独立的虚拟机一样。 – 2012-02-19 21:25:49

看看这个博客文章“多Azure的工作者角色组合成一个Azure的Web角色” http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/2012/02/combining-multiple-azure-worker-roles.html

我觉得这是你需要做什么?

而且韦恩在他的博客中这样的变化:http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/2010/12/how-to-combine-worker-and-web-role-in.html

HTH

检查这个情节云层。 您可以在同一个实例中添加几个Web角色。 工作者角色,你可以随时把多个线程工作的数据。

http://channel9.msdn.com/Shows/Cloud+Cover/Cloud-Cover-Episode-37-Multiple-Websites-in-a-Web-Role

,每次你上传新版本

注意天青你需要上传所有的Web角色/工作者角色天青再次