CN110704541A - 一种Redis集群多数据中心高可用的分布式方法及架构 - Google Patents
一种Redis集群多数据中心高可用的分布式方法及架构 Download PDFInfo
- Publication number
- CN110704541A CN110704541A CN201910978115.0A CN201910978115A CN110704541A CN 110704541 A CN110704541 A CN 110704541A CN 201910978115 A CN201910978115 A CN 201910978115A CN 110704541 A CN110704541 A CN 110704541A
- Authority
- CN
- China
- Prior art keywords
- data
- nodes
- data set
- redis
- different nodes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种Redis集群多数据中心高可用的分布式方法及架构,属于云计算/数据库技术领域。本发明的Redis集群多数据中心高可用的分布式方法,一个数据集有多个副本,相同副本分布在不同的节点上,数据集更新时,保证不同节点上副本数据的一致性;此外相同的数据集中仅有一个副本设置有租约权限,用户在不同节点对数据集进行请求,拥有租约权限的数据集的节点负责读写。该发明的Redis集群多数据中心高可用的分布式方法能够保证集群副本数据的强一致性,并能够提升集群的整体读写速度,具有很好的推广应用价值。
Description
技术领域
本发明涉及云计算/数据库技术领域,具体提供一种Redis集群多数据中心高可用的分布式方法及架构。
背景技术
这是一个数据的时代,推动数据浪潮的发展在于对庞大数据量的存储与分析。而数据正确性,一致性就成了保证这些上层建筑的基础服务,一款产品是否能在业界树立良好的口碑,这便是一把度量尺。在这个硬件飞速发展的时代,虽说摩尔定律随着产业的密集性已然失效,但是不可否认的是迭代集成还在继续,硬件的速度提升并没有停下脚步,这便为软件行业CAP的研究提供了缓和的余地。保证200ms的响应阈值,开发人员与架构师们可以集中更多的精力在架构的高可用性上。正确性与高可用,重中之重的东西提高再多的关注度也不为过。
Redis作为高效率的Key-Value数据库存储系统,支持多种类型的存储方式与数据操作,加之其协议类型简单,被广泛应用于数据存储及缓存中。对于大数据量业务场景下,必然需要部署多个Redis实例解决单物理机下的内存瓶颈,目前Redis官方推出的RedisCluster集群方案虽然可以实现部署多个Redis实例,但是其复杂性过高难以维护和升级,不适合生产环境。
Redis的官方集群搭建情况如下如图1所示,从这种redis cluster的架构图中可以很容易的看出首先将数据根据hash规则分配到6个slot中(这里只是举例子分成了6个槽),然后根据CRC算法和取模算法将6个slot分别存储到3个不同的master节点中,每个master节点又配套部署了一个slave节点,当一个master出现问题后,slave节点可以顶上。
Redis Cluster中所有的节点之间两两通过Redis ClusterBus交互,主要交互以下关键信息:
数据分片(slot)和节点的对应关系。
集群中每个节点可用状态。
集群结构发生变更时,通过一定的协议对配置信息达成一致。数据分片的迁移、故障发生时的主备切换决策、单点master的发现和其发生主备关系的变更等场景均会导致集群结构变化。
发布/订阅功能在cluster版的内容实现所需要交互的信息。
Redis Cluster Bus通过单独的端口进行连接,bus是节点间的内部通信机制,交互的是字节序列化信息,而不是client到Redis服务器的字符序列化以提升交互效率。
Redis Cluster是去中心化的分布式实现方案,客户端可以和集群中的任一节点连接。
Redis官方集群虽然可以保证集群的高可用性,但是还存在以下缺陷:
1、主从同步没有保证强一致性;
2、不具备自动容错和恢复功能,主机从机的宕机都会导致前端部分读写请求失败,需要等待机器重启或者手动切换前端的IP才能恢复;
3、主机宕机,宕机前有部分数据未能及时同步到从机,切换IP后还会引入数据不一致的问题,降低了系统的可用性;
4、如图1所示,当master1和slave1都宕机,集群就无法继续提供服务,降低了系统的可用性。
发明内容
本发明的技术任务是针对上述存在的问题,提供一种能够保证集群副本数据的强一致性,并能够提升集群的整体读写速度的Redis集群多数据中心高可用的分布式方法。
本发明进一步的技术任务是提供一种Redis集群多数据中心高可用的分布式架构。
为实现上述目的,本发明提供了如下技术方案:
一种Redis集群多数据中心高可用的分布式方法,该方法中,一个数据集有多个副本,相同副本分布在不同的节点上,数据集更新时,保证不同节点上副本数据的一致性;此外相同的数据集中仅有一个副本设置有租约权限,用户在不同节点对数据集进行请求,拥有租约权限的数据集的节点负责读写,其余节点的数据集副本负责转发请求到拥有租约权限的副本数据集的节点上。
作为优选,在节点上设有若干容器,用来保存封装Redis的数据结构中的数据,将数据集分别放入不同的容器中。
作为优选,将若干容器分别放入不同的节点中,放入的顺序需保证同一个容器放在不同的节点上。
作为优选,在每个节点上设有参数系统MetaData。
作为优选,数据集更新时,使用Raft算法保证不同节点上副本数据的一致性。
一种Redis集群多数据中心高可用的分布式架构,包括若干节点和若干容器,若干容器分别设置在若干节点之上;一个数据集有多个副本,相同副本分布在不同的节点上,相同的数据集中仅有一个副本设置有租约权限,用户在不同节点对数据集进行请求,拥有租约权限的数据集的节点负责读写,其余节点的数据集副本负责转发请求到拥有租约权限的副本数据集的节点上;所述容器用来保存封装Redis的数据结构中的数据,将数据集分别放入不同的容器中。
作为优选,将若干分别容器放入不同的节点中,放入的顺序需保证同一个容器放在不同的节点上。
作为优选,数据集更新时,使用Raft算法保证不同节点上副本数据的一致性。
所述Raft算法采用现有技术中的Raft算法。
作为优选,在每个节点上设有参数系统MetaData。
与现有技术相比,本发明的Redis集群多数据中心高可用的分布式方法具有以下突出的有益效果:
(一)取消传统的主从架构中从的设计,使用replica容器存储slot数据,复制出若干副本分别存储在不同的节点上,保证了集群的高可用,,在相同节点的情况下,可以产生更大的集群容量,同时可以允许更多的节点产生宕机,而集群仍然可用;
(二)使用Raft算法保证了redis集群的强一致性。原有的主从结构是非一致性的,当主从副本发生交互时候,且这时候其中一台机器宕机,很难保证集群的副本的数据数据同步问题。本发明采用Raft协议算法,可以有效保证集群在任何情况下都能副本数据同步;
(三)引用租约权限保证Redis在多数据中心的情况下,仍然可以保持高响应,当数据中心距离过远,有用户请求节点数据,且能有读写能力的副本在不同的数据中心,这样每个请求得跨中心发送,耗费了时间,请求可以转移租约到负载节点的副本,也就是有读写能力的权限,保证分区容忍性,具有良好的推广应用价值。
附图说明
图1是本发明所述Redis集群多数据中心高可用的分布式方法中租约权限设计流程图;
图2是本发明所述Redis集群多数据中心高可用的分布式方法中Redis数据中心转移流程图;
图3是本发明所述Redis集群多数据中心高可用的分布式方法中Redis请求流程图。
具体实施方式
下面将结合附图和实施例,对本发明的Redis集群多数据中心高可用的分布式方法及架构作进一步详细说明。
实施例
本发明的Redis集群多数据中心高可用的分布式方法,在该方法中一个数据集有多个副本,相同副本分布在不同的节点上,数据集更新时,使用Raft算法保证不同节点上副本数据的一致性。
此外相同的数据集中仅有一个副本设置有租约权限,用户在不同节点对数据集进行请求,拥有租约权限的数据集的节点负责读写,其余节点的数据集副本负责转发请求到拥有租约权限的副本数据集的节点上。
在节点上设有若干容器,用来保存封装Redis的数据结构中的数据,将数据集分别放入不同的容器中。将若干分别容器放入不同的节点中,放入的顺序需保证同一个容器放在不同的节点上。在每个节点上设有参数系统MetaData。
下面为本发明的一个具体实施例
假设数据集有三份,最上层的容器用来保存封装Redis的数据结构slot中的数据。第一份数据集包括数据集1和数据集2,放入容器1中。第二份数据集包括数据集3和数据集4,放入容器2中。第三份数据集包括数据集5和数据集6,放入容器3中。
分别把容器1放入节点1和节点5中,把容器2放入节点1和节点4中,把容器3放入节点2和节点5中,放的顺序要保证同一个容器放在不同的节点上。
由以上可知每个容器中存放两个数据集,假定每个容器有三个副本,三个副本分布在不同的节点上。当有节点在非正常情况下宕机时,所有数据依然保持完整,可以继续服务。每个副本有更新操作,使用Raft协议保证一致性,更新命令发送至每个副本的时候,才返回响应给客户端。
宕机两台节点的情况下,集群是可用状态,副本数至少有一个存活在节点上,集群仍然可以继续提供服务。比如假定节点1和节点3宕机了,节点5上有容器1的数据,节点2和节点4上有容器2和容器3的数据,整个数据在完整状态,用户请求这些集群的任何数据,集群都可以有效返回。
如图1,集群在保证架构的基础上,加入数据中心1和数据中心2,数据中心1可以理解为三个Redis数据库节点搭建在北京,数据中心2可理解为两个Redis数据库节点搭建在上海,这五个节点共同组成了一个集群。节点副本只有拥有租约权限的副本才运行读写,其他副本只允许转发。如图2和图3所示,Redis3中的副本3拥有此副本的租约权限,redis5中的副本3没有租约权限,当用户请求redis5的副本3中的数据,此时,redis5会把用户请求的命令发送到redis3的副本3中,这时候把租约权限从redis3中的副本3转移到redis5中的副本3,大大减低传输产生的延迟性。
本发明的Redis集群多数据中心高可用的分布式架构,包括若干节点和若干容器,若干容器分别设置在若干节点之上;一个数据集有多个副本,相同副本分布在不同的节点上,相同的数据集中仅有一个副本设置有租约权限,用户在不同节点对数据集进行请求,拥有租约权限的数据集的节点负责读写,其余节点的数据集副本负责转发请求到拥有租约权限的副本数据集的节点上;所述容器用来保存封装Redis的数据结构中的数据,将数据集分别放入不同的容器中。
将若干分别容器放入不同的节点中,放入的顺序需保证同一个容器放在不同的节点上。在每个节点上设有参数系统MetaData。
以上所述的实施例,只是本发明较优选的具体实施方式,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。
Claims (9)
1.一种Redis集群多数据中心高可用的分布式方法,其特征在于:该方法中,一个数据集有多个副本,相同副本分布在不同的节点上,数据集更新时,保证不同节点上副本数据的一致性;此外相同的数据集中仅有一个副本设置有租约权限,用户在不同节点对数据集进行请求,拥有租约权限的数据集的节点负责读写,其余节点的数据集副本负责转发请求到拥有租约权限的副本数据集的节点上。
2.根据权利要求1所述的Redis集群多数据中心高可用的分布式方法,其特征在于:在节点上设有若干容器,用来保存封装Redis的数据结构中的数据,将数据集分别放入不同的容器中。
3.根据权利要求2所述的Redis集群多数据中心高可用的分布式方法,其特征在于:将若干容器分别放入不同的节点中,放入的顺序需保证同一个容器放在不同的节点上。
4.根据权利要求3所述的Redis集群多数据中心高可用的分布式方法,其特征在于:在每个节点上设有参数系统MetaData。
5.根据权利要求4所述的Redis集群多数据中心高可用的分布式方法,其特征在于:数据集更新时,使用Raft算法保证不同节点上副本数据的一致性。
6.一种Redis集群多数据中心高可用的分布式架构,其特征在于:包括若干节点和若干容器,若干容器分别设置在若干节点之上;一个数据集有多个副本,相同副本分布在不同的节点上,相同的数据集中仅有一个副本设置有租约权限,用户在不同节点对数据集进行请求,拥有租约权限的数据集的节点负责读写,其余节点的数据集副本负责转发请求到拥有租约权限的副本数据集的节点上;所述容器用来保存封装Redis的数据结构中的数据,将数据集分别放入不同的容器中。
7.根据权利要求6所述的Redis集群多数据中心高可用的分布式架构,其特征在于:将若干分别容器放入不同的节点中,放入的顺序需保证同一个容器放在不同的节点上。
8.根据权利要求7所述的Redis集群多数据中心高可用的分布式架构,其特征在于:数据集更新时,使用Raft算法保证不同节点上副本数据的一致性。
9.根据权利要求8所述的Redis集群多数据中心高可用的分布式架构,其特征在于:在每个节点上设有参数系统MetaData。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910978115.0A CN110704541A (zh) | 2019-10-15 | 2019-10-15 | 一种Redis集群多数据中心高可用的分布式方法及架构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910978115.0A CN110704541A (zh) | 2019-10-15 | 2019-10-15 | 一种Redis集群多数据中心高可用的分布式方法及架构 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110704541A true CN110704541A (zh) | 2020-01-17 |
Family
ID=69198862
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910978115.0A Pending CN110704541A (zh) | 2019-10-15 | 2019-10-15 | 一种Redis集群多数据中心高可用的分布式方法及架构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110704541A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112162823A (zh) * | 2020-09-28 | 2021-01-01 | 北京浪潮数据技术有限公司 | 一种容器部署方法、装置及相关设备 |
CN112487093A (zh) * | 2020-12-07 | 2021-03-12 | 浪潮云信息技术股份公司 | 一种分布式数据库的去中心化副本控制方法 |
CN112948377A (zh) * | 2021-02-02 | 2021-06-11 | 京东数字科技控股股份有限公司 | 数据的存储方法、装置、电子设备及计算机可读介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007293839A (ja) * | 2006-04-25 | 2007-11-08 | Internatl Business Mach Corp <Ibm> | ロックされたキャッシュ内のセットの置換を管理するための方法、コンピュータ・プログラム、キャッシング・システムおよびプロセッサ |
CN105208124A (zh) * | 2015-09-29 | 2015-12-30 | 华为技术有限公司 | 管理锁的方法及装置、确定锁管理服务器的方法及装置 |
CN106161526A (zh) * | 2015-04-07 | 2016-11-23 | 北京中科同向信息技术有限公司 | 一种基于文件系统的分布式存储技术 |
-
2019
- 2019-10-15 CN CN201910978115.0A patent/CN110704541A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007293839A (ja) * | 2006-04-25 | 2007-11-08 | Internatl Business Mach Corp <Ibm> | ロックされたキャッシュ内のセットの置換を管理するための方法、コンピュータ・プログラム、キャッシング・システムおよびプロセッサ |
CN106161526A (zh) * | 2015-04-07 | 2016-11-23 | 北京中科同向信息技术有限公司 | 一种基于文件系统的分布式存储技术 |
CN105208124A (zh) * | 2015-09-29 | 2015-12-30 | 华为技术有限公司 | 管理锁的方法及装置、确定锁管理服务器的方法及装置 |
Non-Patent Citations (2)
Title |
---|
孔超 等: "NoSQL系统的容错机制:原理与系统示例,华东师范大学学报(自然科学版)", 《华东师范大学学报(自然科学版)》 * |
段春梅: "云计算分布式缓存技术在海量数据处理平台中的应用", 《智能计算机与应用》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112162823A (zh) * | 2020-09-28 | 2021-01-01 | 北京浪潮数据技术有限公司 | 一种容器部署方法、装置及相关设备 |
CN112162823B (zh) * | 2020-09-28 | 2023-12-22 | 北京浪潮数据技术有限公司 | 一种容器部署方法、装置及相关设备 |
CN112487093A (zh) * | 2020-12-07 | 2021-03-12 | 浪潮云信息技术股份公司 | 一种分布式数据库的去中心化副本控制方法 |
CN112948377A (zh) * | 2021-02-02 | 2021-06-11 | 京东数字科技控股股份有限公司 | 数据的存储方法、装置、电子设备及计算机可读介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108268208B (zh) | 一种基于rdma的分布式内存文件系统 | |
CN103268318B (zh) | 一种强一致性的分布式键值数据库系统及其读写方法 | |
US9507843B1 (en) | Efficient replication of distributed storage changes for read-only nodes of a distributed database | |
CA2512312C (en) | Metadata based file switch and switched file system | |
CN103095834B (zh) | 一种跨虚拟化数据中心的虚拟机在线迁移方法 | |
EP2643771B1 (en) | Real time database system | |
US20140244578A1 (en) | Highly available main memory database system, operating method and uses thereof | |
CN110704541A (zh) | 一种Redis集群多数据中心高可用的分布式方法及架构 | |
CN105426439A (zh) | 一种元数据的处理方法和装置 | |
KR101670343B1 (ko) | 피어투피어 데이터 복제를 위한 방법, 장치, 및 시스템 및 마스터 노드 전환을 위한 방법, 장치, 및 시스템 | |
CN109933312B (zh) | 一种有效降低容器化关系型数据库i/o消耗的方法 | |
US20150169718A1 (en) | System and method for supporting persistence partition discovery in a distributed data grid | |
CN111274310A (zh) | 一种分布式数据缓存方法及系统 | |
CN112052230B (zh) | 多机房数据同步方法、计算设备及存储介质 | |
WO2014177085A1 (zh) | 分布式多副本数据存储方法及装置 | |
CN111225003B (zh) | 一种nfs节点配置方法和装置 | |
CN105677761A (zh) | 一种数据切分的方法及系统 | |
CN105260377A (zh) | 一种基于分级存储的升级方法和系统 | |
CN114564339A (zh) | 一种磁盘镜像文件跨平台迁移方法及系统 | |
CN104410531A (zh) | 冗余的系统架构方法 | |
JP2013543169A (ja) | ミドルウェアマシン環境を含むシステム | |
CN106855869B (zh) | 一种实现数据库高可用的方法、装置和系统 | |
CN113965582B (zh) | 一种模式转换方法和系统,及存储介质 | |
CN112202601B (zh) | 副本集模式运行的两物理节点mongo集群的应用方法 | |
US11238010B2 (en) | Sand timer algorithm for tracking in-flight data storage requests for data replication |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200117 |