日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

mybatis 多租户saas_彻底理解微商城多租户Saas架构设计

發(fā)布時間:2023/12/9 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mybatis 多租户saas_彻底理解微商城多租户Saas架构设计 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

原文鏈接:https://blog.csdn.net/haponchang/article/details/104246317,感謝作者提供這么好的總結(jié)!

1.具體的SaaS架構(gòu)必須

1.先仔細選擇最適合應(yīng)用程序需求的租戶模型,

2.需要根據(jù)租戶模型來選定最終的架構(gòu),即應(yīng)用程序設(shè)計和管理、每個租戶的數(shù)據(jù)如何映射到存儲等等。

避免因租戶模型的切換而付出昂貴的代價。

租戶模型 ?--》 應(yīng)用程序設(shè)計 +?數(shù)據(jù)設(shè)計方案

2.影響租戶模型的相關(guān)因素包括:

2.1可擴展性(Scalability)

  • 租戶的數(shù)量級
  • 每個租戶的存儲級別
  • 整體存儲
  • 工作負載

2.2租戶隔離性(Tenant isolation)

  • 數(shù)據(jù)隔離和性能(是否一個租戶的負載會影響到其他租戶)

2.3單租戶成本(Per-tenant cost)

  • 數(shù)據(jù)庫成本

2.4 開發(fā)復(fù)雜度(Development complexity)

  • 數(shù)據(jù)結(jié)構(gòu)的變化
  • 查詢語句的變化

2.5運維復(fù)雜度(Operational complexity)

  • 性能監(jiān)控
  • 數(shù)據(jù)結(jié)構(gòu)schema管理
  • 租戶數(shù)據(jù)恢復(fù)
  • 災(zāi)備

2.4可定制化程度(Customizability)

根據(jù)租戶的需求自定義架構(gòu)的容易程度 這個租戶的討論集中在數(shù)據(jù)層。但考慮一下應(yīng)用層。應(yīng)用程序?qū)颖灰暈橐粋€整體實體。如果將應(yīng)用程序劃分為許多小型組件,您的租戶模型選擇可能會發(fā)生變化。對于租戶和存儲技術(shù)或使用的平臺,您可以對其他組件進行不同的處理。

3 常見的架構(gòu)模式有以下幾種:

3.1獨立服務(wù)+獨立數(shù)據(jù)庫

這個模型中,應(yīng)用層和數(shù)據(jù)層都是隔離的。

應(yīng)用程序的每個實例都是獨立實例。

租戶擁有自己獨立的數(shù)據(jù)庫,每個應(yīng)用程序?qū)嵗恍枰粋€數(shù)據(jù)庫。

對租戶的管理獨立于系統(tǒng)之外,對于每一個租戶,整個應(yīng)用程序需要重復(fù)安裝一次。供應(yīng)商都可以為租戶管理軟件。每個應(yīng)用程序?qū)嵗寂渲脼檫B接到其相應(yīng)的數(shù)據(jù)庫。

優(yōu)點:為不同的租戶提供獨立的應(yīng)用實例和數(shù)據(jù)庫,有助于簡化數(shù)據(jù)模型和業(yè)務(wù)模型的擴展設(shè)計,滿足不同租戶的獨特需求;如果出現(xiàn)故障,恢復(fù)系統(tǒng)或數(shù)據(jù)均比較簡單,系統(tǒng)間也不會相互影響。

問題:數(shù)據(jù)庫層面,每個租戶數(shù)據(jù)庫都作為獨立數(shù)據(jù)庫進行部署。該模型提供了最大的數(shù)據(jù)庫隔離。但隔離需要為每個數(shù)據(jù)庫分配足夠的資源來處理其高峰負載。這里重要的是, 彈性池不能用于部署在不同資源組或不同訂閱中的數(shù)據(jù)庫。這種限制使得這種獨立的單租戶應(yīng)用程序模型成為從整體數(shù)據(jù)庫成本角度來看最昂貴的解決方案;應(yīng)用層面,每個租戶若存在個性化定制,則需要對項目進行橫向擴展,擴展時務(wù)必需要保證與主干版本的兼容性問題。運維層面,應(yīng)用和數(shù)據(jù)庫的安裝數(shù)量會隨租戶的數(shù)量線性遞增,隨之帶來維護成本和購置成本的增加。

3.2一套服務(wù)+獨立數(shù)據(jù)庫

這個模型中,應(yīng)用層是共享的,數(shù)據(jù)層都是隔離的

應(yīng)用程序僅部署一套,所有租戶實例共享。

租戶仍擁有自己獨立的數(shù)據(jù)庫,應(yīng)用程序需對接多個租戶的數(shù)據(jù)庫。

對租戶的管理由配置中心(Config Server)管理,配置中心提供了配置,監(jiān)視和管理共享所需的功能,供應(yīng)商使用這些工具為租戶管理軟件。對于每一個租戶,整個應(yīng)用程序僅需要安裝一次,應(yīng)用程序?qū)嶋H請求結(jié)合配置中心請求相應(yīng)的數(shù)據(jù)庫。

優(yōu)點:為不同的租戶提供獨立數(shù)據(jù)庫,有助于簡化數(shù)據(jù)模型擴展設(shè)計,滿足不同租戶的獨特需求;如果出現(xiàn)故障,數(shù)據(jù)恢復(fù)均比較簡單,也可以自動將單個租戶恢復(fù)到較早的時間點。因為恢復(fù)只需要恢復(fù)存儲租戶的一個單租戶數(shù)據(jù)庫。這種恢復(fù)對其他租戶沒有影響,這證實了管理運營處于每個租戶的細粒度級別。應(yīng)用層面的維護成本和購置成本有所減少。

問題:數(shù)據(jù)庫層面,同模型一;應(yīng)用層面,每個租戶若存在個性化定制,則需要對項目進行橫向擴展,擴展時務(wù)必需要保證與主干版本的兼容性問題。運維層面,數(shù)據(jù)庫的運維問題同模式一,應(yīng)用層面的運維在版本控制的問題上難度有所增加。

3.3 一套服務(wù)+一套數(shù)據(jù)庫(不同schema)

這個模型中,應(yīng)用層是共享的,數(shù)據(jù)庫共享,但數(shù)據(jù)是隔離的。

應(yīng)用程序和數(shù)據(jù)庫僅部署一套,所有租戶共享。

多個或所有租戶共享Database,也就是說共同使用一個數(shù)據(jù)庫,但是每個租戶一個Schema(也可叫做一個user),使用表進行數(shù)據(jù)隔離數(shù)據(jù)庫。底層庫比如是:DB2、ORACLE等,一個數(shù)據(jù)庫下可以有多個SCHEMA。

應(yīng)用程序需對接多個租戶的數(shù)據(jù)庫。

對租戶的管理由配置中心(Config Server)管理,同模式二。

優(yōu)點:為安全性要求較高的租戶提供了一定程度的邏輯數(shù)據(jù)隔離,并不是完全隔離;每個數(shù)據(jù)庫可支持更多的租戶數(shù)量。

問題:數(shù)據(jù)庫層面,如果出現(xiàn)故障,數(shù)據(jù)恢復(fù)比較困難,因為恢復(fù)數(shù)據(jù)庫將牽涉到其他租戶的數(shù)據(jù);應(yīng)用層面,配置中心需要對租戶信息進行完整且合理的分配和維護。

3.4 一套服務(wù)+一套數(shù)據(jù)庫(相同schema)

模型與模型三的差別在于共享數(shù)據(jù)庫,共享 Schema,共享數(shù)據(jù)表。也就是說共同使用一個數(shù)據(jù)庫一個表使用字段進行數(shù)據(jù)隔離。如表中增加TenantID多租戶的數(shù)據(jù)字段。這是共享程度最高、隔離級別最低的模式。

簡單來講,即每插入一條數(shù)據(jù)時都需要有一個客戶的標識。這樣才能在同一張表中區(qū)分出不同客戶的數(shù)據(jù),這也是我們系統(tǒng)目前用到的(tenant_id)。

優(yōu)點:方案的維護和購置成本低,允許每個數(shù)據(jù)庫支持的租戶數(shù)量最多。

問題:隔離級別最低,安全性最低,需要在設(shè)計開發(fā)時加大對安全的開發(fā)量;數(shù)據(jù)備份和恢復(fù)最困難,需要逐表逐條備份和還原。

3.5網(wǎng)關(guān)+前臺+中臺+數(shù)據(jù)存儲

模式五與之前的模式的最大區(qū)別是,在原有的web Service進行細化拆分,優(yōu)化成 網(wǎng)關(guān)+前臺+中臺+數(shù)據(jù)存儲的模式。

網(wǎng)關(guān)用于接收租戶的請求,并發(fā)送給前臺。

前臺的數(shù)量與租戶一致,每一個租戶對應(yīng)一個前臺服務(wù),方便針對租戶進行個性化定制。

中臺負責提供處理所有的業(yè)務(wù)請求,中臺不關(guān)心租戶是誰,將重心關(guān)注在業(yè)務(wù)的處理上。配置中心用于配置租戶的接口權(quán)限、流程定制等相關(guān)配置信息。結(jié)合業(yè)務(wù)邏輯返回給前臺特定租戶的相關(guān)信息。

數(shù)據(jù)庫模式參考模式四。

優(yōu)點:有利于定制不同租戶的個性化需求。例如:交互界面不同、工作流不同等等。服務(wù)只需要根據(jù)用戶需求在前臺做相應(yīng)的橫向擴展即可;?不同租戶間服務(wù)相互獨立,互不影響。

問題:模塊劃分需要做好劃分,重點注重業(yè)務(wù)之間的低耦合;調(diào)用鏈路變長,需要做一定的優(yōu)化處理;模塊縱向拆分后,后期研發(fā)和運維難度均會有所增加;

好文收集不易,請轉(zhuǎn)發(fā)或在看,謝謝!

總結(jié)

以上是生活随笔為你收集整理的mybatis 多租户saas_彻底理解微商城多租户Saas架构设计的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。