多个客户的Web API结构[多租户]

时间:2017-01-03 14:00:30

标签: c# database asp.net-web-api multi-tenant

我有以下情况:

我有一个通过C#WebAPI访问数据的Web应用程序。我需要在其中应用multitenancy的概念,以便我的应用程序可以被多个客户端访问,并且每个客户端都可以单独访问它们的数据库。

面对这种需求,我研究了StackOverflow葡萄牙语并找到了以下问题:

Web application for multiple people

Databases for different clients

至于我理解的概念,不过我的问题是关于部署我的WebAPI以及最佳实践:

我应该在IIS中部署和托管单个API实例(并通过代码重定向访问数据库)吗?

或者我应该执行单独的部署,即在IIS中托管API的多个实例,每个实例都访问您的数据库?

如果第二个选项最可行,有没有办法以更自动化的方式进行多次部署?是否有任何支持此部署升级的云功能(Azure,Amazon等)?

1 个答案:

答案 0 :(得分:1)

几点:

  1. 您可以使用置于负载均衡器后面的单个应用。
  2. 对于每个请求,您都可以从授权标头中识别租户。
  3. 根据标识,可以选择数据库分片,从而实现数据库隔离
  4. 拥有单个实例有助于轻松升级和发布修复/部署。
  5. 如果您选择数据库分片,请查看Azure分片地图。
  6. HTH