艾体宝干货 | 解析Redis企业版的多租户技术

在多租户架构中,一个软件实例为多个不同的用户组(或“租户”)提供服务。每个租户的数据都被安全地隔离,确保它们对其他租户不可见且无法访问。可以将其想象为一栋公寓大楼,每个人都住在共享建筑中独立且隔离的单元中。

一、基本概念

多租户(Multi-Tenancy)技术是一种软件架构模式,在这种模式下,单一的软件实例为多个独立的租户(Tenant)提供服务。每个租户的数据和配置被逻辑上隔离,确保安全性和隐私,但物理上共享同一套硬件和软件资源。多租户技术包括以下几个基本概念:

  • 租户(Tenant):指使用同一软件实例的独立实体(公司、部门或个人用户)。每个租户的数据和配置逻辑上隔离,确保安全性和隐私。
  • 共享资源(Shared Resources):通过共享计算资源(服务器、存储、网络)降低成本和提高资源利用率。
  • 逻辑隔离(Logical Isolation):通过数据库分区等技术手段实现数据和操作的严格隔离。
  • 可定制性(Customizability):允许租户根据需求定制软件,如界面风格、功能模块和权限配置。

二、多租户与Redis

在Redis中,多租户指的是单个服务器高效地管理各个租户的需求,每个租户都安全地、独立地维护其数据。操作效率和成本效益是这种方法的几个关键优势。因为它最大限度地利用资源,不需要为每个新租户增加额外的物理基础设施,从而简化和扩展业务运营。

通过Redis,可以在本地或任何受控的云基础设施中创建多租户环境。这一功能对于使用微服务开发内部应用程序特别有价值。通过采用多租户方法,避免了为每个开发、测试或生产环境构建和维护单独基础设施的复杂性和费用。意味着可以并行构建和测试,大大减少了工作量。

三、Redis的多实例部署

1、多实例部署

多租户和多实例架构有明显差异。在多实例架构中,每个租户安装一个新的软件实例。下图展示了Redis多实例架构的示例。在这种情况下,为每个租户部署一个新的Redis实例,以满足租户数据隔离的需求。但是随着租户数量的增加,部署、监控、维护和升级多个软件实例的复杂性也随之增加。

2、通过虚拟化/容器化实现多租户

在这种情况下,Redis作为一个容器或虚拟机部署,底层管理系统负责根据需要启动新的Redis实例。多租户在服务器或基础设施级别进行处理,确保每个租户的操作保持隔离和安全。这种方法与多实例设置非常相似,尽管管理层简化了新Redis服务的配置和启动,但需要监控和管理的Redis实例数量没有改变。

许多常见服务如Amazon ElastiCache采用这种模式。这些服务根据使用的Redis实例数量收费。虽然这种定价模式和服务的可扩展性通常会带来规模效益,但这些效益的获利者往往是服务提供商而非终端用户。

3、Redis中的多租户

Redis提供软件级别的多租户,单次部署(通常是多节点的集群部署形式)能高效地支持数百个租户。每个租户都被分配到一个独立的Redis接入端点,且与其他租户完全隔离。此举最大化了效率,同时提高了数据库设置的安全性和性能。

在数据中心、私有云或虚拟私有云中部署Redis,可以充分利用多租户架构的效益优势。只需要准备少量Redis节点的单个集群,就可以支持从开发和测试再到完整生产线上环境的各种业务。此种设置允许在同一基础设施中高效地满足不同租户的不同需求。

四、Redis的多租户架构是如何工作的

Redis的架构在多层抽象上实现多租户、高可用性、线性扩展和高吞吐量等功能。以下是主要组件的分解:

1、节点

节点是Redis软件运行的硬件基础,可以是物理服务器、虚拟机、容器或云实例。

2、数据管理组件

分片: Redis的核心是分片,运行在单个CPU核心上的核心实例。管理整个数据集的一个子集,独立运行,以提高性能和可扩展性。

数据库: 每个数据库都是租户数据的逻辑端点。可以根据数据大小和吞吐量需求,为一个数据库分配多个分片。持久性、复制、驱逐策略以及使用闪存扩展 RAM 等功能都可以在数据库级别进行配置。数据库通过在不同节点上分布主数据库和辅助数据库来确保高可用性。数据库类型包括:

  • Simple数据库: 单个主分片
  • 高可用(HA)数据库: 一个主分片与一个或多个副本分片
  • 集群数据库: 多个主分片,每个分片处理数据集的一个部分
  • HA集群数据库: 多对主分片和副本分片

3、集群控制组件

零延迟代理(Zero latency proxy):集成到每个节点的多线程代理,会将Redis操作从客户端路由到正确的数据库分片。保障了请求将被定向到适当的分片,提供高效操作的基础。

集群管理器(Cluster manager):由一组分布式进程组成,负责管理整个集群生命周期。与数据平面组件分离,集群管理器负责:

  • 数据库调配和取消调配:确保最佳的资源利用率
  • 自动扩展(Automatic scaling):调整资源以处理高峰工作负载
  • 自动重新分区(Automatic resharding):确保高吞吐量和低延迟性能
  • 自动重新平衡(Automatic rebalancing):保持高吞吐量和实时性能
  • 资源管理:监控整个系统的健康状况
  • 节点看门狗(Node watchdog):监督每个 Redis 节点上的进程,必要时触发分片故障事件
  • 集群看门狗(Cluster watchdog):确保 Redis 集群节点的健康,必要时触发节点故障事件

部署功能非常强大,唯一的限制是集群中可用的总内存。每个数据库端点都被分配一个完全限定域名(FQDN),所有节点上的零延迟代理能有效地将客户端请求重定向到正确的主分片。

五、通过多租户降低成本并提升效率

Redis的多租户解决方案带来了一些显著的价值:

1、降低基础设施成本:Redis通过允许在单个集群中运行多个Redis数据库端点,最大化基础设施利用率。例如,可以在一个简单的三节点集群上运行数百个数据库端点。由于底层的时间片切分机制,运行的数据库实例数量可以远超可用核心数量。Redis在发出需要添加更多资源的信号之前,会利用所有可用的物理资源。相比之下,ElastiCache 等其他解决方案只能为每个节点或集群提供一个数据库端点,与我们的方法相比,这将导致显著的额外成本

2、无缝扩展:可以通过添加更多分片并在多个节点上扩展来扩展Redis数据库。Redis架构确保在此过程中其他租户(此处为数据库)不会受到影响。

3、针对高可用性、持久性、淘汰和数据大小的微调:并非所有应用程序对数据持久性和高可用性都有相同的要求。在Redis中,可以根据应用程序需求调整数据库,而不影响同一节点上运行的其他数据库。

4、在开发、测试和生产环境中的敏捷性:一旦设置了Redis集群,应用程序开发人员可以按需配置Redis数据库端点,而无需担心底层物理或云基础设施。

Redis是一种经过市场验证的多租户解决方案。这可保证所有数据库满足其性能要求,同时保持与其他业务数据库的隔离,并在分布式环境中保持高可用性。Redis易于扩展,在主要云平台(如AWS、Azure和Google Cloud)上运行了超过50,000个数据库端点,近10,000家企业信任我们,并使用Redis来处理其最重要的应用程序。

六、Redis的无共享架构带来的收益

Redis采用无共享架构,清楚地将数据路径组件(如代理和分片)与控制和管理组件(如集群管理进程)分开。这种架构提供了显著的优势,并解决了关键的多租户挑战:

1、性能:该架构允许数据组件实体专注于处理用户请求,提高整体性能。每个分片独立运行,类似于独立的Redis实例,无需监控其他实例或管理网络分区,这种隔离减少了其他租户带来的干扰。

2、可用性:在分片、重新分片重新平衡等工作任务的期间内,应用程序均保持对数据的一致访问,这种无缝的数据可用性由系统自动管理,无需人工干预,保证操作在后台活动中不中断。

3、安全性和数据隐私:Redis通过将配置命令限制在安全的CLI、UI或API接口上,并使用基于角色的授权来增强安全性。我们的代理架构确保每个分片仅与经过身份验证的实体连接并处理经过验证的请求,从而防止未经授权的访问并增强租户间的数据隐私。

4、可管理性:数据库配置、配置更改和软件更新等管理任务通过单个命令流畅执行,也可通过UI或API执行。这些任务在不中断用户流量的情况下在集群中执行,确保操作顺畅和资源分配有效。

5、可扩展性和资源分配:该架构支持水平扩展,有效地将数据集分布在多个节点、服务器和集群中。这种方法不仅适应增长,还战略性地分配资源,防止任何单个租户独占系统能力。结果是资源在所有租户之间公平分配。

结语

多租户技术从共享计算时代起源,经过多年的发展和演进,已成为现代云计算和SaaS架构中的关键技术。Redis Enterprise通过高效的多租户支持和创新的架构设计,提供了强大的性能、灵活性和安全性,为企业提供了可靠的解决方案。通过不断优化和改进,Redis Enterprise将在未来继续引领多租户技术的发展。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/39223.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大模型时代的基础架构,大模型算力中心建设指南重磅来袭!

什么是最畅销商品?什么是高毛利商品? 我们来看一个例子: 一件T恤使用成本为100元的原料,价格为140元。另一件T恤使用成本为80元的原料,但在样式、颜色、图案的设计上比较有特色,价格也为140元。 当这两件…

【JVM-04】线上CPU100%

【JVM-04】线上CPU100% 1. 如何排查2. 再举一个例子 1. 如何排查 ⼀般CPU100%疯狂GC,都是死循环的锅,那怎么排查呢?先进服务器,⽤top -c 命令找出当前进程的运⾏列表按⼀下 P 可以按照CPU使⽤率进⾏排序显示Java进程 PID 为 2609…

苏东坡传-读书笔记七

苏堤和西湖之与杭州,正如美女花容月貌上的双眸。我常想,倘若西湖之是空空的一片水——没有苏堤那秀美的修眉和虹彩般的仙岛,一画龙点睛增其神韵,那西湖该望之如何?几百年来的中国游客,春季到来之时,向西湖…

如何在Python中实现一个简单的爬虫程序

如何在Python中实现一个简单的爬虫程序 随着互联网的发展,数据已成为当今社会最宝贵的资源之一。而爬虫程序则成为了获取互联网数据的重要工具之一。本文将介绍如何在Python中实现一个简单的爬虫程序,并提供具体的代码示例。 确定目标网站 在开始编写爬…

【Python】已解决:urllib.error.HTTPError: HTTP Error 403: Forbidden

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决:urllib.error.HTTPError: HTTP Error 403: Forbidden 一、分析问题背景 在使用Python的urllib库中的urlopen或urlretrieve函数下载文件时,有时会遇到…

全国30省份各省资本存量数据固定资本形成总额永续盘存法(2000-2023年)

各省资本存量数据通过永续盘存法进行了详细的计算,这一方法覆盖了中国30个省份(不包括西藏),提供从2000年起直至2023的资本存量数据集。包括原始数据、测算过程、最终的资本存量结果。 以2000年作为基期年份,依据…

电路笔记(PCB):电流容量(IPC-2221和IPC-2152)+阻抗匹配

电流容量 IPC-2221经验公式 I K T b A c IK\times T^{b}\times A^{c} IKTbAc 这个公式用于估计PCB(Printed Circuit Board,印刷电路板)导线上的电流(I),其中T和A分别表示温度(Temperature&a…

flex布局中子元素内容超出时,子元素本身出现滚动条实现方法

flex布局中子元素宽度平均分配,并且当子元素内容超出时,子元素本身出现滚动条实现方法: 将父元素设置为display: flex,以启用Flexbox布局。将每个子元素的flex属性设置为1,以使其宽度平均分配。设置子元素的overflow属…

ComfyUI流程图、文生图、图生图步骤教学!

前言 leetcode , 209. 长度最小的子数组 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的子数组 [numsl, numsl1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 …

大厂都在“抢滩”欧洲杯,你该如何蹭上热度?

2024欧洲杯战至第三轮小组赛,德国、瑞士、西班牙、意大利已出线角逐1/8决赛。 云略统计,欧洲杯开战至今,抖音上“欧洲杯”相关话题高达1000个,其中#谁是欧洲杯预言家 话题播放量高达7.57亿,C罗、姆巴佩等国际巨星更是频…

DB-100撕裂开关 JOSEF约瑟 合金接线端子,轻松接线

一、产品概述 型号:DB-100 主要用途:DB-100撕裂开关主要用于监测皮带输送机在运行过程中是否发生纵向撕裂,一旦发现撕裂情况,立即触发报警或停机,以保护设备和生产线的安全运行。 二、技术特点 检测原理:…

Snipaste截图工具的下载

Snipaste是一款简单而强大的桌面截图工具,它不仅支持快速截图,还提供了丰富的编辑和贴图功能,极大地提升了用户的工作效率。 网址:Snipaste 下载 1.进入文件夹解压缩 2.解压缩后打开双击运行 3.快捷键F1截图 F3截图固定桌面 …

2024年6月总结及随笔之打卡网红点

1. 回头看 日更坚持了547天。 读《人工智能时代与人类未来》更新完成读《AI未来进行式》开更并更新完成读《AI新生:破解人机共存密码》开更并持续更新 2023年至2024年6月底累计码字1267912字,累计日均码字2317字。 2024年6月码字90659字,…

泰勒展开式在Android系统或应用程序中的应用

泰勒展开式在Android系统或应用程序中的应用 引言 泰勒展开式(Taylor Series)是高等数学中的一个重要工具,它允许我们将一个复杂函数表示为一个无穷多项式的和,从而近似计算函数值。在Android开发中,理解和应用泰勒展开式有助于优化涉及复杂数值计算的算法,提高应用程序…

MySQL 9.0创新版发布!功能又进化了!

作者:IT邦德 中国DBA联盟(ACDU)成员,10余年DBA工作经验, Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主,全网粉丝10万 擅长主流Oracle、MySQL、PG、高斯及Greenplum备份恢复, 安装迁移,性能优化、故障…

稳居C位的AIGC,真能让人人都成“设计大神”?

在当今数字化时代,随着人工智能技术的飞速发展,AIGC(AI Generated Content,即人工智能生成内容)已经逐渐成为设计领域的新宠。特别是在UI设计领域,AIGC的崛起引人注目,甚至有人宣称,…

大数据、人工智能、云计算、物联网、区块链序言【大数据导论】

各位大佬好 ,这里是阿川的博客,祝您变得更强 个人主页:在线OJ的阿川 大佬的支持和鼓励,将是我成长路上最大的动力 阿川水平有限,如有错误,欢迎大佬指正 本篇序言前 必看 【大数据导论】—大数据序言 这是…

以 Vue 3 项目为例,你是否经常遇到 import 语句顺序混乱的问题?要想解决它其实很容易!

大家好,我是CodeQi! 在项目开发过程中,我们经常会遇到项目中的 import 语句顺序混乱的问题。 这不仅会影响代码的可读性,还可能使我们代码在提交的时候产生不必要的冲突。 面对这种情况,要想解决它其实很容易。 通过合理的规范和自动化工具,我们可以确保 import 语句…

计算机网络 —— 路由协议:RIP、OSPF、BGP、MPLS

路由协议 1. 定义2. IGP2.1 RIP2.2 OSPF 3. BGP4. MPLS 1. 定义 互联网中需要通过路由将数据发送至目标主机。 路由器根据路由控制表(RoutingTable)转发数据包,它根据所收到的数据包中目标主机的IP地址与路由控制表的比较得出下一个应该接收的路由器。 &#xff…

盛元广通打造智慧校园实验室安全管理系统

盛元广通智慧校园实验室安全管理系统以安全为重点,构建由学校、二级单位、实验室组成的三级联动的实验室安全多级管理体系、多类用户角色,内置教育部标准检查表,支撑实验室相关业务过程的智慧管理。实现通过PC端/手机移动端开展检查工作、手机…