2017-01-03 45 views
0

我有以下情況:多客戶端的Web API結構[Multitenancy]

我有一個通過C#WebAPI訪問數據的Web應用程序。我需要在其中應用multitenancy的概念,以便我的應用程序可以被多個客戶端訪問,並且每個客戶端都可以單獨訪問其數據庫。

有這方面的需求面前,我研究了StackOverflow的葡萄牙人,發現如下問題:

Web application for multiple people

Databases for different clients

至於我的理解這個概念,但我的問題是關於部署我WebAPI和最佳實踐是什麼:

我應該在IIS中部署和託管單個API實例(並通過代碼重定向對數據庫的訪問)嗎?

或者我應該執行單獨的部署,即在IIS中託管API的許多實例,每個實例都訪問您的數據庫?

如果第二個選項是最可行的,有沒有辦法以更自動化的方式進行多次部署?是否有任何雲功能支持此部署升級(Azure,Amazon等)?

+0

我不知道這個無恥的自我推廣將是任何幫助或不http://www.eonasdan.com/home/two-level-multi-tenant – Eonasdan

回答

1

幾點:

  1. 您可以使用放置在負載平衡器後面的單一的應用程序。
  2. 對於每個請求,您從授權標頭中標識租戶。
  3. 基於標識,可以選擇數據庫分片,因此可以實現數據庫隔離
  4. 使用單個實例有助於輕鬆升級和修復/部署問題。
  5. 如果您選擇數據庫分片,請查看Azure分片地圖。

HTH