【技术实现步骤摘要】
一种构建大规模redis集群的方法
本专利技术涉及分布式缓存领域,具体来说,涉及一种构建大规模redis集群的方法。
技术介绍
开源Redis(远程字典服务)产品提供了RedisCluster(是Redis的分布式解决方案)集群模式,其采用无中心架构集群,为了维护集群状态信息的统一,集群中各节点之间需要互相进行信息的交换:集群中每个节点会跟其他所有节点连接,集群采用交换消息的方式被称为Gossip(流言传播协议),每个Redis节点都会周期性的跟其他节点交换信息,并且需要在一定时间内,必须完成跟所有节点的信息交换,从而使所有节点最终达成信息的一致性。如图5所示,这种集群构建方式,因为集群节点两两连接,所以随着集群中节点数的增大,集群网络连接数将成指数级增长;而且随着集群节点数的增多,集群通信的网络带宽占用同样会大幅增加,从而占用更多的主机资源。所以其集群构建规模受此所限,不建议超过200节点。针对相关技术中的问题,目前尚未提出有效的解决方案。
技术实现思路
针对相关技术中的问题,本专利技术提出一种构建大规模redis集群的方法,以克服现有相关技术所存在的上述技术问题。为此,本专利技术采用的具体技术方案如下:一种构建大规模redis集群的方法,该方法包括以下步骤:S1、根据远程字典服务节点的不同属性与其他远程字典服务节点建立通信连接;S2、通过建立的通信连接及基于集群节点间的通信连接模块进行信息同步;S3、若集群中节点挂掉时,各管理节点对该节点 ...
【技术保护点】
1.一种构建大规模redis集群的方法,其特征在于,该方法包括以下步骤:/nS1、根据远程字典服务节点的不同属性与其他远程字典服务节点建立通信连接;/nS2、通过建立的通信连接及基于集群节点间的通信连接模块进行信息同步;/nS3、若集群中节点挂掉时,各管理节点对该节点进行故障的协商判定;/nS4、若从节点发起选举投票时,各管理节点进行投票并选出新的主节点,同时新的主节点代替故障主节点;/n其中,集群节点分为管理节点和普通节点,管理节点与其他所有节点连接通信,并进行节点的故障判定及主从故障选举,普通节点与管理节点以及所属主从关系的节点连接通信。/n
【技术特征摘要】
1.一种构建大规模redis集群的方法,其特征在于,该方法包括以下步骤:
S1、根据远程字典服务节点的不同属性与其他远程字典服务节点建立通信连接;
S2、通过建立的通信连接及基于集群节点间的通信连接模块进行信息同步;
S3、若集群中节点挂掉时,各管理节点对该节点进行故障的协商判定;
S4、若从节点发起选举投票时,各管理节点进行投票并选出新的主节点,同时新的主节点代替故障主节点;
其中,集群节点分为管理节点和普通节点,管理节点与其他所有节点连接通信,并进行节点的故障判定及主从故障选举,普通节点与管理节点以及所属主从关系的节点连接通信。
2.根据权利要求1所述的一种构建大规模redis集群的方法,其特征在于,所述S3中若集群中节点挂掉时,各管理节点对该节点进行故障的协商判定还包括以下步骤:
S31、管理节点启动并与其他所有节点建立长期通信连接;
S32、若管理节点与每个节点的连接建立失败,则定时进行重连处理,直到连接建立;
S33、普通节点启动并与所有管理节点以及其所属主/从节点建立长期通信连接;
S34、若普通节点与其他节点的连接建立失败,则定时进行重连处理,直到连接建立;
S35、各节点在超时周期t1内与连接的所有节点进行一次心跳通信,并记录此次心跳通信的心跳请求包的发起时间;
S36、各节点在接收到其他节点在步骤S35中的心跳请求包后,检查包含的各节点状态,并回复心跳响应包;
S37、各节点在接收到其他节点在步骤S36中的心跳响应包后,重置心跳请求包的发起时间为0,且针对心跳请求包中的各节点状态进行处理。
3.根据权利要求2所述的一种构建大规模redis集群的方法,其特征在于,所述管理节点最终建立的连接总数表达式:
E(m,n)=(m-1+n)×m;其中,管理节点个数表示为m,普通节点个数表示为n。
4.根据权利要求3所述的一种构建大规模redis集群的方法,其特征在于,所述普通节点最终建立的连接总数表达式:
m×n≤F(m,n,r)≤(m+r-1)×n;
其中,管理节点个数表示为m,普通节点个数表示为n,数据副本数表示为r。
5.根据权利要求4所述的一种构建大规模redis集群的方法,其特征在于,所述心跳请求包及心跳响应包的内容均包含本节点的分片信息和10%节点的状态信息。
6.根据权利要求5所述的一种构建大规模redis集群的方法,其特征在于,所述S35中各节点在超时周期t1内与连接的所有节点进行一次心跳通信,并记录此次心跳通信的心跳请求包的发起时间还包括以下步骤:
S351、若各节点在步骤S35中的心跳请求包在过半超时周期t/2内未收到步骤S36中的心跳响应包,则断开与该节点的连接,且连接将在步骤S31-步骤S34中重新建立;
S352、若各节点在步骤S35中的心跳请求包在超时周期t1内未收到步骤S36中的心跳响应包...
【专利技术属性】
技术研发人员:于光杰,刘启铨,曾力耕,
申请(专利权)人:浩鲸云计算科技股份有限公司,
类型:发明
国别省市:江苏;32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。