每个Azure实例可以拥有多少个角色

时间:2010-08-27 08:48:32

标签: azure azure-worker-roles azure-web-roles

我知道每个实例只能有1个Web角色,但这也适用于Background角色吗?更详细的是,1个实例可以运行后台角色和Web角色吗?

3 个答案:

答案 0 :(得分:15)

我认为您问题中使用的术语会让其他响应者感到困惑。

在Windows Azure计算中,您拥有云服务。云服务可以被视为您的整体架构,或者至少是前端,中间层等(任何有计算而不是存储的层)。例如,您的应用程序可能具有演示前端(ASP.Net MVC Web应用程序)和中间层(基本http上的WCF服务层)。我们将这些层级中的每一层都称为“角色”。所以在上面的例子中,我将在我的云服务中拥有2个Web角色。我可能还有一些后端处理,它可以进行某种批处理工作,这也是一个“角色”。响应用户交互的角色(如网站,服务层等)作为“Web角色”托管,而这些后端服务是“工作角色”。

然后我们有实例。一个实例是配置了多少虚拟机以提供给定角色的功能。例如,我可能需要我的表示层有5个实例,因为它需要很多负载。所以,我的1个web角色有5个实例。同样,我的中间层(服务层)可能只需要3个实例(因为表示层缓存),因此我的1个Web角色有3个实例。我的后端服务可能只需要1个实例,因为它的工作可以随时完成,但如果后台日志太大,它可以扩展到10个实例来完成工作,然后再缩小到1个实例。

所以关键在于每个角色可以有1个或更多个实例。由于这种关系,每个实例只能有一个角色是有意义的(因为实例是从单个角色模板中“实例化”的)。

Rinat上面试图说的是你可以欺骗工作者角色并在WCF中实际托管一个http端点,从而获得Web角色类型行为,但是当你没有获得web角色的负载平衡时你做这个。同样,Web角色可以通过覆盖WebRole.cs中的OnStart方法来实现工作者角色样式行为。但是我仍然认为这只是两种情况下的一个角色,你可以拥有该角色的多个实例。

Bjorn表示默认情况下每个角色的上限为20个,但是你可以得到更多(所以他不配得到-1恕我直言)。

希望这可以解决它。

答案 1 :(得分:11)

每个实例只能有一个角色

但是,您可以托管您的工作人员角色中的Http端点,从而有效地将其转变为Web + Worker角色。

参考文献和样本:

答案 2 :(得分:4)

默认情况下,一个Web角色可以有20个实例。如果您需要更多,可以联系Azure服务台,他们会将其打开!