加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

艾體寶干貨 | 解析Redis企業(yè)版的多租戶技術(shù)

06/27 07:54
1042
閱讀需 13 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

引導(dǎo)語:在多租戶架構(gòu)中,一個(gè)軟件實(shí)例為多個(gè)不同的用戶組(或“租戶”)提供服務(wù)。每個(gè)租戶的數(shù)據(jù)都被安全地隔離,確保它們對(duì)其他租戶不可見且無法訪問??梢詫⑵湎胂鬄橐粭澒⒋髽牵總€(gè)人都住在共享建筑中獨(dú)立且隔離的單元中。

簡(jiǎn)介:Redis的多租戶解決方案為企業(yè)節(jié)省成本、提高效率和靈活性。它允許在單個(gè)集群中運(yùn)行多個(gè)數(shù)據(jù)庫端點(diǎn),最大化資源利用率。通過無縫擴(kuò)展和微調(diào),滿足不同應(yīng)用程序的需求。無共享架構(gòu)提供高性能、可用性、安全性和可管理性,并支持可擴(kuò)展性和資源分配。

一、基本概念

多租戶(Multi-Tenancy)技術(shù)是一種軟件架構(gòu)模式,在這種模式下,單一的軟件實(shí)例為多個(gè)獨(dú)立的租戶(Tenant)提供服務(wù)。每個(gè)租戶的數(shù)據(jù)和配置被邏輯上隔離,確保安全性和隱私,但物理上共享同一套硬件和軟件資源。多租戶技術(shù)包括以下幾個(gè)基本概念:

  • 租戶(Tenant):指使用同一軟件實(shí)例的獨(dú)立實(shí)體(公司、部門或個(gè)人用戶)。每個(gè)租戶的數(shù)據(jù)和配置邏輯上隔離,確保安全性和隱私。
  • 共享資源(Shared Resources):通過共享計(jì)算資源(服務(wù)器、存儲(chǔ)、網(wǎng)絡(luò))降低成本和提高資源利用率。
  • 邏輯隔離(Logical Isolation):通過數(shù)據(jù)庫分區(qū)等技術(shù)手段實(shí)現(xiàn)數(shù)據(jù)和操作的嚴(yán)格隔離。
  • 可定制性(Customizability):允許租戶根據(jù)需求定制軟件,如界面風(fēng)格、功能模塊和權(quán)限配置。

二、多租戶與Redis

在Redis中,多租戶指的是單個(gè)服務(wù)器高效地管理各個(gè)租戶的需求,每個(gè)租戶都安全地、獨(dú)立地維護(hù)其數(shù)據(jù)。操作效率和成本效益是這種方法的幾個(gè)關(guān)鍵優(yōu)勢(shì)。因?yàn)樗畲笙薅鹊乩觅Y源,不需要為每個(gè)新租戶增加額外的物理基礎(chǔ)設(shè)施,從而簡(jiǎn)化和擴(kuò)展業(yè)務(wù)運(yùn)營。
通過Redis,可以在本地或任何受控的云基礎(chǔ)設(shè)施中創(chuàng)建多租戶環(huán)境。這一功能對(duì)于使用微服務(wù)開發(fā)內(nèi)部應(yīng)用程序特別有價(jià)值。通過采用多租戶方法,避免了為每個(gè)開發(fā)、測(cè)試或生產(chǎn)環(huán)境構(gòu)建和維護(hù)單獨(dú)基礎(chǔ)設(shè)施的復(fù)雜性和費(fèi)用。意味著可以并行構(gòu)建和測(cè)試,大大減少了工作量。

三、Redis的多實(shí)例部署

1、多實(shí)例部署

多租戶和多實(shí)例架構(gòu)有明顯差異。在多實(shí)例架構(gòu)中,每個(gè)租戶安裝一個(gè)新的軟件實(shí)例。下圖展示了Redis多實(shí)例架構(gòu)的示例。在這種情況下,為每個(gè)租戶部署一個(gè)新的Redis實(shí)例,以滿足租戶數(shù)據(jù)隔離的需求。但是隨著租戶數(shù)量的增加,部署、監(jiān)控、維護(hù)和升級(jí)多個(gè)軟件實(shí)例的復(fù)雜性也隨之增加。

2、通過虛擬化/容器化實(shí)現(xiàn)多租戶

在這種情況下,Redis作為一個(gè)容器或虛擬機(jī)部署,底層管理系統(tǒng)負(fù)責(zé)根據(jù)需要啟動(dòng)新的Redis實(shí)例。多租戶在服務(wù)器或基礎(chǔ)設(shè)施級(jí)別進(jìn)行處理,確保每個(gè)租戶的操作保持隔離和安全。這種方法與多實(shí)例設(shè)置非常相似,盡管管理層簡(jiǎn)化了新Redis服務(wù)的配置和啟動(dòng),但需要監(jiān)控和管理的Redis實(shí)例數(shù)量沒有改變。

許多常見服務(wù)如Amazon ElastiCache采用這種模式。這些服務(wù)根據(jù)使用的Redis實(shí)例數(shù)量收費(fèi)。雖然這種定價(jià)模式和服務(wù)的可擴(kuò)展性通常會(huì)帶來規(guī)模效益,但這些效益的獲利者往往是服務(wù)提供商而非終端用戶。

3、Redis中的多租戶

Redis提供軟件級(jí)別的多租戶,單次部署(通常是多節(jié)點(diǎn)的集群部署形式)能高效地支持?jǐn)?shù)百個(gè)租戶。每個(gè)租戶都被分配到一個(gè)獨(dú)立的Redis接入端點(diǎn),且與其他租戶完全隔離。此舉最大化了效率,同時(shí)提高了數(shù)據(jù)庫設(shè)置的安全性和性能。

數(shù)據(jù)中心、私有云或虛擬私有云中部署Redis,可以充分利用多租戶架構(gòu)的效益優(yōu)勢(shì)。只需要準(zhǔn)備少量Redis節(jié)點(diǎn)的單個(gè)集群,就可以支持從開發(fā)和測(cè)試再到完整生產(chǎn)線上環(huán)境的各種業(yè)務(wù)。此種設(shè)置允許在同一基礎(chǔ)設(shè)施中高效地滿足不同租戶的不同需求。

四、Redis的多租戶架構(gòu)是如何工作的

Redis的架構(gòu)在多層抽象上實(shí)現(xiàn)多租戶、高可用性、線性擴(kuò)展和高吞吐量等功能。以下是主要組件的分解:

1、節(jié)點(diǎn)

節(jié)點(diǎn)是Redis軟件運(yùn)行的硬件基礎(chǔ),可以是物理服務(wù)器、虛擬機(jī)、容器或云實(shí)例。

2、數(shù)據(jù)管理組件

分片: Redis的核心是分片,運(yùn)行在單個(gè)CPU核心上的核心實(shí)例。管理整個(gè)數(shù)據(jù)集的一個(gè)子集,獨(dú)立運(yùn)行,以提高性能和可擴(kuò)展性。
數(shù)據(jù)庫: 每個(gè)數(shù)據(jù)庫都是租戶數(shù)據(jù)的邏輯端點(diǎn)。可以根據(jù)數(shù)據(jù)大小和吞吐量需求,為一個(gè)數(shù)據(jù)庫分配多個(gè)分片。持久性、復(fù)制、驅(qū)逐策略以及使用閃存擴(kuò)展 RAM 等功能都可以在數(shù)據(jù)庫級(jí)別進(jìn)行配置。數(shù)據(jù)庫通過在不同節(jié)點(diǎn)上分布主數(shù)據(jù)庫和輔助數(shù)據(jù)庫來確保高可用性。數(shù)據(jù)庫類型包括:

  • Simple數(shù)據(jù)庫: 單個(gè)主分片
  • 高可用(HA)數(shù)據(jù)庫: 一個(gè)主分片與一個(gè)或多個(gè)副本分片
  • 集群數(shù)據(jù)庫: 多個(gè)主分片,每個(gè)分片處理數(shù)據(jù)集的一個(gè)部分
  • HA集群數(shù)據(jù)庫: 多對(duì)主分片和副本分片

3、集群控制組件

零延遲代理(Zero latency proxy):集成到每個(gè)節(jié)點(diǎn)的多線程代理,會(huì)將Redis操作從客戶端路由到正確的數(shù)據(jù)庫分片。保障了請(qǐng)求將被定向到適當(dāng)?shù)姆制峁└咝Р僮鞯幕A(chǔ)。

集群管理器(Cluster manager):由一組分布式進(jìn)程組成,負(fù)責(zé)管理整個(gè)集群生命周期。與數(shù)據(jù)平面組件分離,集群管理器負(fù)責(zé):

  • 數(shù)據(jù)庫調(diào)配和取消調(diào)配:確保最佳的資源利用率
  • 自動(dòng)擴(kuò)展(Automatic scaling):調(diào)整資源以處理高峰工作負(fù)載
  • 自動(dòng)重新分區(qū)(Automatic resharding):確保高吞吐量和低延遲性能
  • 自動(dòng)重新平衡(Automatic rebalancing):保持高吞吐量和實(shí)時(shí)性能
  • 資源管理:監(jiān)控整個(gè)系統(tǒng)的健康狀況
  • 節(jié)點(diǎn)看門狗(Node watchdog):監(jiān)督每個(gè) Redis 節(jié)點(diǎn)上的進(jìn)程,必要時(shí)觸發(fā)分片故障事件
  • 集群看門狗(Cluster watchdog):確保 Redis 集群節(jié)點(diǎn)的健康,必要時(shí)觸發(fā)節(jié)點(diǎn)故障事件

部署功能非常強(qiáng)大,唯一的限制是集群中可用的總內(nèi)存。每個(gè)數(shù)據(jù)庫端點(diǎn)都被分配一個(gè)完全限定域名(FQDN),所有節(jié)點(diǎn)上的零延遲代理能有效地將客戶端請(qǐng)求重定向到正確的主分片。

五、通過多租戶降低成本并提升效率

Redis的多租戶解決方案帶來了一些顯著的價(jià)值:

1、降低基礎(chǔ)設(shè)施成本:Redis通過允許在單個(gè)集群中運(yùn)行多個(gè)Redis數(shù)據(jù)庫端點(diǎn),最大化基礎(chǔ)設(shè)施利用率。例如,可以在一個(gè)簡(jiǎn)單的三節(jié)點(diǎn)集群上運(yùn)行數(shù)百個(gè)數(shù)據(jù)庫端點(diǎn)。由于底層的時(shí)間片切分機(jī)制,運(yùn)行的數(shù)據(jù)庫實(shí)例數(shù)量可以遠(yuǎn)超可用核心數(shù)量。Redis在發(fā)出需要添加更多資源的信號(hào)之前,

會(huì)利用所有可用的物理資源。相比之下,ElastiCache 等其他解決方案只能為每個(gè)節(jié)點(diǎn)或集群提供一個(gè)數(shù)據(jù)庫端點(diǎn),與我們的方法相比,這將導(dǎo)致顯著的額外成本。

2、無縫擴(kuò)展:可以通過添加更多分片并在多個(gè)節(jié)點(diǎn)上擴(kuò)展來擴(kuò)展Redis數(shù)據(jù)庫。Redis架構(gòu)確保在此過程中其他租戶(此處為數(shù)據(jù)庫)不會(huì)受到影響。

3、針對(duì)高可用性、持久性、淘汰和數(shù)據(jù)大小的微調(diào):并非所有應(yīng)用程序?qū)?shù)據(jù)持久性和高可用性都有相同的要求。在Redis中,可以根據(jù)應(yīng)用程序需求調(diào)整數(shù)據(jù)庫,而不影響同一節(jié)點(diǎn)上運(yùn)行的其他數(shù)據(jù)庫。

4、在開發(fā)、測(cè)試和生產(chǎn)環(huán)境中的敏捷性:一旦設(shè)置了Redis集群,應(yīng)用程序開發(fā)人員可以按需配置Redis數(shù)據(jù)庫端點(diǎn),而無需擔(dān)心底層物理或云基礎(chǔ)設(shè)施。

Redis是一種經(jīng)過市場(chǎng)驗(yàn)證的多租戶解決方案。這可保證所有數(shù)據(jù)庫滿足其性能要求,同時(shí)保持與其他業(yè)務(wù)數(shù)據(jù)庫的隔離,并在分布式環(huán)境中保持高可用性。Redis易于擴(kuò)展,在主要云平臺(tái)(如AWS、Azure和Google Cloud)上運(yùn)行了超過50,000個(gè)數(shù)據(jù)庫端點(diǎn),近10,000家企業(yè)信任我們,并

使用Redis來處理其最重要的應(yīng)用程序。

六、Redis的無共享架構(gòu)帶來的收益

Redis采用無共享架構(gòu),清楚地將數(shù)據(jù)路徑組件(如代理和分片)與控制和管理組件(如集群管理進(jìn)程)分開。這種架構(gòu)提供了顯著的優(yōu)勢(shì),并解決了關(guān)鍵的多租戶挑戰(zhàn):

1、性能:該架構(gòu)允許數(shù)據(jù)組件實(shí)體專注于處理用戶請(qǐng)求,提高整體性能。每個(gè)分片獨(dú)立運(yùn)行,類似于獨(dú)立的Redis實(shí)例,無需監(jiān)控其他實(shí)例或管理網(wǎng)絡(luò)分區(qū),這種隔離減少了其他租戶帶來的干擾。

2、可用性:在分片、重新分片重新平衡等工作任務(wù)的期間內(nèi),應(yīng)用程序均保持對(duì)數(shù)據(jù)的一致訪問,這種無縫的數(shù)據(jù)可用性由系統(tǒng)自動(dòng)管理,無需人工干預(yù),保證操作在后臺(tái)活動(dòng)中不中斷。

3、安全性和數(shù)據(jù)隱私:Redis通過將配置命令限制在安全的CLI、UI或API接口上,并使用基于角色的授權(quán)來增強(qiáng)安全性。我們的代理架構(gòu)確保每個(gè)分片僅與經(jīng)過身份驗(yàn)證的實(shí)體連接并處理經(jīng)過驗(yàn)證的請(qǐng)求,從而防止未經(jīng)授權(quán)的訪問并增強(qiáng)租戶間的數(shù)據(jù)隱私。

4、可管理性:數(shù)據(jù)庫配置、配置更改和軟件更新等管理任務(wù)通過單個(gè)命令流暢執(zhí)行,也可通過UI或API執(zhí)行。這些任務(wù)在不中斷用戶流量的情況下在集群中執(zhí)行,確保操作順暢和資源分配有效。

5、可擴(kuò)展性和資源分配:該架構(gòu)支持水平擴(kuò)展,有效地將數(shù)據(jù)集分布在多個(gè)節(jié)點(diǎn)、服務(wù)器和集群中。這種方法不僅適應(yīng)增長,還戰(zhàn)略性地分配資源,防止任何單個(gè)租戶獨(dú)占系統(tǒng)能力。結(jié)果是資源在所有租戶之間公平分配。

結(jié)語

多租戶技術(shù)從共享計(jì)算時(shí)代起源,經(jīng)過多年的發(fā)展和演進(jìn),已成為現(xiàn)代云計(jì)算SaaS架構(gòu)中的關(guān)鍵技術(shù)。Redis Enterprise通過高效的多租戶支持和創(chuàng)新的架構(gòu)設(shè)計(jì),提供了強(qiáng)大的性能、靈活性和安全性,為企業(yè)提供了可靠的解決方案。通過不斷優(yōu)化和改進(jìn),Redis Enterprise將在未來繼續(xù)引領(lǐng)多租戶技術(shù)的發(fā)展。

了解 ITT-Redis 更多信息,歡迎前往【艾體寶】官方網(wǎng)站:https://itbigtec.com/

聯(lián)系艾體寶工程師:TEL:15528663362

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
KSZ8864CNXIA-TR 1 Microchip Technology Inc DATACOM, ETHERNET TRANSCEIVER, QCC64
暫無數(shù)據(jù) 查看
KSZ8567RTXI-TR 1 Microchip Technology Inc IC ETHERNET SWITCH 7PORT 128TQFP

ECAD模型

下載ECAD模型
$10.96 查看
TLE6250GV33 1 Infineon Technologies AG Interface Circuit, 1-Trnsvr, BICMOS, PDSO8, GREEN, PLASTIC, SOP-8

ECAD模型

下載ECAD模型
$3.27 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

虹科是一家資源整合及技術(shù)服務(wù)落地供應(yīng)商,與全球頂尖公司深度技術(shù)合作,專注于制造業(yè)、汽車、生物、醫(yī)藥、測(cè)試與測(cè)量、廣播電視與媒體、通信、網(wǎng)絡(luò)安全、光電等領(lǐng)域,為客戶提供:智能自動(dòng)化、工業(yè)物聯(lián)網(wǎng)、智能感知、數(shù)字化+AR、光電、網(wǎng)絡(luò)安全、測(cè)試測(cè)量、衛(wèi)星與無線通信、醫(yī)藥環(huán)境監(jiān)測(cè)與驗(yàn)證、生命科學(xué)、汽車電子、汽車維修診斷、云科技等解決方案。虹科始終致力于為行業(yè)客戶提供創(chuàng)新及前端的產(chǎn)品和技術(shù)解決方案,為科技社會(huì)發(fā)展助力加碼。