多租戶概要

1.什麼是多租戶?

我們先看看這樣的場景:你們公司開發了一套應用程序,你們公司自己買相關的資源部署了,可是有其他的公司也覺得好,也想搞這樣一套,其實操作也簡單按照你們公司實施的在其他公司實施一遍即可。

但是,問題來了,並不是每個公司都這麼有錢,有很多可能是個體戶,他們只想花少量的錢既有系統可用,又不需要管理維護硬件。怎麼辦?多租戶模式解決!

所謂多租戶,簡單地說:部署一套應用程序,應用數據隔離的技術讓不同的商家登錄系統後只能操作自己的數據,就像這個系統爲他單獨開發部署的一樣,不同商家之間數據彼此不可見。

 

2.有哪些實現原理?

方式一:基於獨立的數據源--數據庫;

方式二:基於獨立的數據源--schema;

方式二:基於同一數據源--表的租戶列;

 

3.常見的實現框架:

方式三的實現框架:

使用MybatisPlus框架很容易實現;

使用JPA/Hibernate框架,Hibernate枚舉了這種原理方式但是沒有實現,不過自己藉助Hibernate的複合主鍵的功能也可以實現這種方式。

方式二/方式一的實現框架:

Hibernate框架對這兩種方式進行了實現。因此實現用JPA/Hibernate框架比較容易一些;

如果想利用Mybatis/MybatisPlus實現,可能需要自己研究並閱讀更改一些源碼才能實現。

 

4.多租戶核心原則:

隔離數據,互不干擾!

 

5.多租戶需要注意的問題:

要注意的問題其實就是不能違背核心原則的問題,常見涉及的問題:

A.數據源;

B.Redis緩存;

C.定時任務;

D.異步線程池;

E.服務器文件存儲;

F.WebSocket連接規則。

其實只要記住一點:只要在多租戶模式下可能導致數據混亂的問題都應該進行處理,畢竟程序有價,數據無價!

 

6.Efadmin項目採用的多租戶模式:

獨立數據源,獨立redis數據庫的絕對數據隔離模式;

 

7.Efadmin多租戶採用的實現框架:

SpringDataJPA框架。

 

8.Efadmin的多租戶體驗:

管理多租戶,可以管理其他租戶的數據源

https://efadmin.ddbin.com/

用戶名密碼:root/123456

租戶1

https://t1.ddbin.com/

用戶名密碼:admin1/123456

租戶2

https://t2.ddbin.com/

用戶名密碼:admin2/123456

注意:

A.兩個租戶的https證書使用的是efadmin.ddbin.com域名的,所以訪問時,谷歌瀏覽器會說證書無效,信任即可!

B.因阿里雲服務器寬帶僅1M,即理論最大128K/s文件傳輸速度,因此登錄可能會慢一些,請知悉。

 

9.實現源碼:

 

 

後端源碼

前端源碼

github

https://github.com/vip-efactory/efadmin

https://github.com/vip-efactory/efadmin-ui

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章