对于大流量 restful http web api 2 服务,我应该使用 Azure web api 还是 Azure worker 角色?

Should i use Azure web api or Azure worker role for heavy traffic restful http web api 2 service?

我必须将 restful web api 2 项目部署到 Azure,预计会有大量流量。我不确定 Azure 服务 select 的最佳性能。 Web api 服务在后台是 运行 用于 http 处理的完整 IIS,而工作者角色需要通过 OWIN 实现 http 处理。有什么经验吗?

我建议您使用 Azure API 应用程序 (https://azure.microsoft.com/en-us/documentation/articles/app-service-api-apps-why-best-platform/),因为该服务旨在托管 Web API 2 服务。当您使用 API 应用程序时,您可以获得负载平衡、自动缩放、监控等。因此,您可以专注于构建满足业务需求的东西。

您应该始终避免必须自己做任何管道工程,因为这总是会在以后反噬您。 API 在这种情况下,Apps 是正确的选择!

我强烈建议您使用 Azure 应用服务(Web 应用或 API 应用)代替 Azure 'Cloud Services'。好处多,坏处少。

应用服务带来的一些显着优势是自动缩放、Web 作业(想想轻量级工作者角色)、更简单和更快的部署机制,以及与 Application Insights 的一些无缝集成。

云服务唯一做得更好的是规模(垂直和水平)。但对于大多数 web/webAPI 场景,这些优势会随着应用服务可用的新定价层而大大减弱。

A​​pp Service Environment(App Service 的一项新功能),您可以从字面上扩展到无限数量的实例(默认为 50,但您可以致电 Microsoft 来增加限制)并使用更强大的(是的,这是一个技术术语)实例大小。

在你走应用服务环境路线之前,我建议你评估一下你的用户群的地理分布。对于标准和高级定价层,每个应用服务计划可以分别扩展到 10 和 25。您可以在几个不同的数据中心(美国西部、美国东部、美国中部或海外,视情况而定)制定一个应用服务计划,并在其前面放置一个流量管理器,现在您拥有三个应用服务计划,每个计划都有一个最大10 或 25,具体取决于定价层。这可以增加很多金属,并具有改善最终用户体验和增加系统可用性/灾难恢复的双重好处。

这些天我只推荐云服务用于真正密集的批处理,或者现有应用程序存在架构限制,需要能够更好地控制实例的底层 OS(云服务支持启动任务,让您可以在生成新实例时做各种疯狂的事情,而这些事情是应用服务做不到的)。