我工作的公司正在寻求开发一些针对云的应用程序。
- 托管在 Azure Web 角色中的 ASP.NET Web Api 应用程序。
- 托管在 Azure 辅助角色中的 Windows Server 类型应用程序。
我们对网络或云开发完全陌生,想了解以下内容:
当向消费者提供服务时,是否向所有人提供同一个应用程序实例,是每个请求一个,还是创建多个角色并向消费者提供服务?
最佳答案
When being served to the consumer, is the same instance of the application being served to all?
这取决于您要求 Azure 在多少个实例上运行您的应用程序。如果您只部署到 1 个实例,那么它当然会是响应所有请求的同一个实例。但如果您部署到多个实例,请求将被负载均衡,这意味着您无法保证来自同一用户的多个请求将由同一实例处理。
当您问这个问题时,可能是因为您可能想在运行实例的计算机上存储本地数据。然而,这不是一个好主意。 Windows Azure 可以随时拆除您的实例并在完全不同的计算机上启动您的应用程序。他们称之为“修复”,因为这种情况通常会发生,因为 Windows Azure 试图提供帮助并避免任何可能导致实例停机的潜在问题。但如果您的机器由于某种原因锁定或发生其他不良情况,也会发生这种情况。此修复过程意味着不属于部署包的任何内容都将丢失。例如,如果您正在记录磁盘上的文件,则当 Azure“修复”您的实例时,该日志将会丢失。
is it one per request or are multiple roles being created and served to consumers?
我不完全确定你的意思,所以我会猜测并冒着错误解释你的问题的风险。我的猜测是,您是在询问每个用户请求是否有一个实例。不,只会有您决定的实例数量。请记住,您必须为每个正在运行的实例付费,因此运行的实例数量由您决定是公平的。
当您将应用程序打包并准备部署到 Windows Azure 时,您可以决定要运行每个角色的多少个实例。您可以在部署包中设置此数量,以便在部署包时,Azure 将自动启动请求数量的实例。但是,您可以在部署后和动态更改每个角色的运行实例数。这使您可以在几分钟内扩展更多实例。
我希望这对您有所帮助,并且我正确理解了您的问题。 :-)
关于azure - 了解如何在 Azure 中提供角色中的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14677714/