3

我有一个使用 MVC 4 构建的 Web 应用程序,后端带有 WebApi,它具有实体框架。

我已经使用结构映射将实体框架注入 webapi。并将 webapi 客户端注入 MVC 4 应用程序。

他的应用程序运行良好,但很快我将需要扩展。

MVC 4 应用程序位于一台服务器上,webapi 位于另一台服务器上,并且有一个数据库服务器。

如何水平扩展 webapi?如果我添加 webapi 服务器和数据库服务器,是否有实体框架的配置将采用多个连接字符串并进行循环查询?是否有可用于 EF 的分片。

httpclient怎么样?故障转移如何,例如客户端需要多个 IP,如果一个失败,请求会转到另一台服务器?

如何缩放它们?

4

1 回答 1

3

通常会添加额外的 Web 服务器,然后使用负载平衡器在它们之间分配传入请求。这里有一些考虑。

  • 如果 Web 服务器跨请求保留数据(通过 ASP.NET 会话),您将需要创建一个所有 Web 服务器可以共享的单独状态服务器,或使用状态感知的负载平衡器。

  • 如果性能问题源于数据库 IO 问题(缺少表索引、索引碎片、请求提取大量结果集、低于最佳磁盘\硬件配置等),那么添加更多 Web 服务器将无法解决问题。第一步是监控和分析您的数据库,并确保它运行良好。

于 2012-08-12T19:53:23.877 回答