多租戶平台是什么?
多租戶技術(Multi-TenancyTechnology)又稱多重租賃技術:是一種軟件架構技術,是實現如何在多用戶環境下 (此處的多用戶一般是面向企業用戶)共用相同的系統或程序組件,並且可確保各用戶間數據的隔離性
簡單講: 在一台服務器上運行單個應用實例,它為多個租戶(客戶)提供服務。從定義中我們可以理解:多租戶是一種架 構,目的是為了讓多用戶環境下使用同一套程序,且保證用戶間數據隔離。那么重點就很淺顯易懂了,多租戶的重 點就是同一套程序下實現多用戶數據的隔離
我們來分析一下傳統軟件行業和多租戶的區別
傳統行業
:
比如我們大力公司需要一個CRM客戶關系管理系統,那么我們就去找外包,外包做好后來到我們公司部署到我們公司的內網上,這種呢就是傳統的軟件行業。因為是將軟件部署到公司內部,不同的公司需要將自己的軟件都部署到公司的內部,這樣對於開發方來說,維護困難,對於使用方來說,成本也變高了。
多租戶
:
比如我們現在開發了一套多租戶的CRM系統,然后大力公司剛好需要一套CRM系統,那么它就可以在我們平台上租用這一套系統,然后只需要定時繳納固定費用后,就可以直接使用該系統,而不需要去考慮維護、服務器等問題。注意:多個租戶之間的數據是相互隔離不相通的。
一圖勝千言
:
數據庫如何設計?
這種模式看着感覺很科學,但是你可能也會想到,這種模式的數據庫設計應該是個大麻煩,對不錯,這種模式的數據庫確實是個大問題。
現在基於多租戶的數據庫設計方案通常有三種:
1、獨立數據庫
2、共享數據庫,獨立Schema
3、共享數據庫、共享表
獨立數據庫
這是最吊的,一個租戶一個實際的數據庫系統
優點:對於業務方面來說更加簡單,可以滿足不同租戶的奇葩需求,數據也很安全,與其他租戶的數據隔離性很高。
缺點:增加數據庫成本、硬件成本、統計數據困難、擴展比較麻煩。
共享數據庫、獨立Schema
Schema這個比較特殊,
比如Oracle:
一個數據庫可以有多個用戶,那么一般一個用戶對應一個Schema,那么我們就可以一個租戶代表一個數據庫的用戶,那么他們的數據也就隔離開了。
比如MySQL:
可以理解為一個單獨的數據庫,多個租戶多個數據庫(一個數據庫系統可以有多個數據庫)。
優點:數據隔離性較高。
缺點:出現故障后數據恢復很困難、統計數據也很困難等。
共享數據庫、共享表
也就是所有租戶共享一個數據庫,然后可以通過id等字段來區分不同租戶的數據。
優點:成本低
缺點:增加業務復雜度、隔離級別低、故障后數據恢復基本gg。
三種方式的對比
來自黑馬的一張圖一圖勝千言
: