多租戶平台是什么?數據庫如何設計?


多租戶平台是什么?

多租戶技術(Multi-TenancyTechnology)又稱多重租賃技術:是一種軟件架構技術,是實現如何在多用戶環境下 (此處的多用戶一般是面向企業用戶)共用相同的系統或程序組件,並且可確保各用戶間數據的隔離性

簡單講: 在一台服務器上運行單個應用實例,它為多個租戶(客戶)提供服務。從定義中我們可以理解:多租戶是一種架 構,目的是為了讓多用戶環境下使用同一套程序,且保證用戶間數據隔離。那么重點就很淺顯易懂了,多租戶的重 點就是同一套程序下實現多用戶數據的隔離

我們來分析一下傳統軟件行業和多租戶的區別

傳統行業

​ 比如我們大力公司需要一個CRM客戶關系管理系統,那么我們就去找外包,外包做好后來到我們公司部署到我們公司的內網上,這種呢就是傳統的軟件行業。因為是將軟件部署到公司內部,不同的公司需要將自己的軟件都部署到公司的內部,這樣對於開發方來說,維護困難,對於使用方來說,成本也變高了。

多租戶

​ 比如我們現在開發了一套多租戶的CRM系統,然后大力公司剛好需要一套CRM系統,那么它就可以在我們平台上租用這一套系統,然后只需要定時繳納固定費用后,就可以直接使用該系統,而不需要去考慮維護、服務器等問題。注意:多個租戶之間的數據是相互隔離不相通的

一圖勝千言

數據庫如何設計?

這種模式看着感覺很科學,但是你可能也會想到,這種模式的數據庫設計應該是個大麻煩,對不錯,這種模式的數據庫確實是個大問題。

現在基於多租戶的數據庫設計方案通常有三種:

​ 1、獨立數據庫

​ 2、共享數據庫,獨立Schema

​ 3、共享數據庫、共享表

獨立數據庫

這是最吊的,一個租戶一個實際的數據庫系統

​ 優點:對於業務方面來說更加簡單,可以滿足不同租戶的奇葩需求,數據也很安全,與其他租戶的數據隔離性很高。

​ 缺點:增加數據庫成本、硬件成本、統計數據困難、擴展比較麻煩。

共享數據庫、獨立Schema

Schema這個比較特殊,

比如Oracle:

​ 一個數據庫可以有多個用戶,那么一般一個用戶對應一個Schema,那么我們就可以一個租戶代表一個數據庫的用戶,那么他們的數據也就隔離開了。

比如MySQL:

​ 可以理解為一個單獨的數據庫,多個租戶多個數據庫(一個數據庫系統可以有多個數據庫)。

​ 優點:數據隔離性較高。

​ 缺點:出現故障后數據恢復很困難、統計數據也很困難等。

共享數據庫、共享表

也就是所有租戶共享一個數據庫,然后可以通過id等字段來區分不同租戶的數據。

​ 優點:成本低

​ 缺點:增加業務復雜度、隔離級別低、故障后數據恢復基本gg。

三種方式的對比

來自黑馬的一張圖一圖勝千言


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM