• 正文
  • 推薦器件
  • 相關推薦
申請入駐 產業(yè)圖譜

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

2024/06/27
1859
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

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

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

一、基本概念

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

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

二、多租戶與Redis

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

三、Redis的多實例部署

1、多實例部署

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

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

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

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

3、Redis中的多租戶

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

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

四、Redis的多租戶架構是如何工作的

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

1、節(jié)點

節(jié)點是Redis軟件運行的硬件基礎,可以是物理服務器、虛擬機、容器或云實例。

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

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

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

3、集群控制組件

零延遲代理(Zero latency proxy):集成到每個節(jié)點的多線程代理,會將Redis操作從客戶端路由到正確的數(shù)據(jù)庫分片。保障了請求將被定向到適當?shù)姆制?,提供高效操作的基礎。

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

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

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

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

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

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

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

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

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

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

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

使用Redis來處理其最重要的應用程序。

六、Redis的無共享架構帶來的收益

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

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

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

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

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

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

結語

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

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

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

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風險等級 參考價格 更多信息
TJA1051TK/3/1J 1 NXP Semiconductors TJA1051 - High-speed CAN transceiver SON 8-Pin

ECAD模型

下載ECAD模型
$1.43 查看
KSZ8864CNXIA 1 Microchip Technology Inc DATACOM, ETHERNET TRANSCEIVER, QCC64

ECAD模型

下載ECAD模型
$7.74 查看
USB3320C-EZK-TR 1 SMSC Interface Circuit, 5 X 5 MM, 0.90 MM HEIGHT, ROHS COMPLIANT, QFN-32
$2.65 查看

相關推薦

登錄即可解鎖
  • 海量技術文章
  • 設計資源下載
  • 產業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄

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