一种动态构建的分布式数据集群控制系统及其方法与流程

文档序号:17429904发布日期:2019-04-17 03:21阅读:254来源:国知局
一种动态构建的分布式数据集群控制系统及其方法与流程

本发明属于分布式控制系统领域,特别是一种动态构建的分布式数据集群控制系统及其方法。



背景技术:

目前随着大数据技术、云技术、人工智能等技术的发展,数据量越来越大,数据的存储和处理也得到了较多的关注。为了更好的提供系统服务和数据处理,分布式集群成为较优的技术架构及实施方案。分布式集群为系统应用提供数据分布、本地缓存、副本冗余备份、容错、事务、并发控制等支持,在数据迁移、容错和并发读写的过程中保证数据的一致性,其同时为应用提供远程中心数据库的存储访问支持和数据同步。目前在现有的分布式集群不能提供数据业务服务场景稳定的情况下,动态的构建分布式数据集群,实现数据节点的动态加入和动态移除,降低了分布式集群数据服务的灵活性。同时随着数据业务场景的高并发性特征,如何提高数据服务的低延时指标也成为目前分布式集群领域重要的研究方向。

目前分布式集群在具体的应用中存在以下2个问题:

(1)如何动态的构建分布式数据集群,保证数据的一致性。动态的构建分布式数据集群由新加入数据节点和移除故障数据节点两种情况构成,在保证现有数据节点提供稳定可靠服务的基础上,采取何种策略动态构建新的数据集群是目前分布式领域重要的研究方向之一。

(2)如何解决分布式数据集群数据节点数量多,数据通信量大的场景下,提高数据节点间的通信效率,提高数据同步的效率,使数据管理达到低延时的要求。



技术实现要素:

本发明所解决的技术问题在于提供一种动态构建的分布式数据集群控制系统及其方法,该系统能够提供动态可配置的数据节点添加及移除,使数据节点之间的数据一致性得到保障,为数据读入和写入提供低延时服务。

实现本发明目的的技术解决方案为:一种动态构建的分布式数据集群控制系统,包括服务端装置、管理端装置、n个客户端装置,服务端装置同时与多个客户端装置、管理端装置连接;服务端装置包括多个服务数据节点实例,所有服务数据节点实例构成一个服务节点集群,每个服务数据节点实例称为一个服务节点,其中某一个服务节点作为服务节点集群的中心主节点,其余服务节点均为数据从节点;

所述服务端装置,用于解析并加载分布式数据集群节点的网络与基础配置信息;

所述管理端装置,为用户提供管理分布式数据集群的接口,用户可以通过查询语言查询分布式数据集群的状态和数据信息,并可以初始化数据和更新数据;其中,集群的状态为服务节点正常工作或者故障;

所述客户端装置,用于查询中心主节点且建立连接,并执行数据同步和数据更新操作。

一种基于上述系统的动态构建的分布式数据集群控制方法,包括以下步骤:

步骤1、用户通过服务端装置对分布式数据集群的配置信息进行解析操作;具体包括集群节点配置信息、集群节点网络配置信息、数据存储配置信息、日志记录配置信息;

步骤2、运行带参数的分布式数据集群节点,并且有序的将新增加的节点逐一添加入集群数据队列;

步骤3、根据服务端装置中每个服务节点的hash值大小,将服务节点排序为有序环形;之后每个服务节点与距离其最近且正常工作的右侧节点连接,形成一个稳定的有序闭环,构建为一个动态的分布式数据集群;

步骤4、管理端装置与服务端装置建立连接;

步骤5、比较管理端装置、服务端装置的数据版本,若服务端装置的数据版本比管理端装置的数据版本新,则执行数据同步操作更新管理端装置的数据版本;

步骤6、管理端装置获取不到服务端装置的数据版本,即表明服务端装置的分布式数据集群为新构建的集群,由管理端装置的数据库表结构对服务端装置的数据进行初始化;

步骤7、客户端装置与服务端装置建立连接进行通信,并获取中心主节点进行连接;客户端装置不间断的检测其与中心主节点的连接状态,若中心主节点发生故障则获取新的中心主节点进行连接;

步骤8、服务端装置有新的数据信息,通知客户端装置进行数据同步操作;

步骤9、客户端装置在服务端装置没有数据更新通知的条件下查询其内部的数据以提供数据服务;

步骤10、管理端装置查询服务端装置中分布式数据集群每个节点的状态和数据状态;

步骤11、管理端装置通过数据查询语言查询服务端装置的数据版本;

步骤12、管理端装置与客户端装置各自的数据版本更新后,均会同步更新至服务端装置的数据库中;

步骤13、服务端装置将新版本数据分发到管理端装置、客户端装置进行数据同步。

本发明与现有技术相比,其显著优点:1)本发明在数据节点接收到多个数据更新时,将其放入一个事务中一并提交至数据库,提高了数据同步的低延时指标;2)本发明通过中心主节点登记数据更新,并立即通知其它节点有数据更新,提高了数据更新的及时性指标;3)本发明将不断的数据更新以增量的方式在一定时间保存在中心主节点的内存中,减少了处理的数据量;4)本发明中数据节点对数据的更新均经过中心节点,保障了数据的一致性。

下面结合附图对本发明作进一步详细描述。

附图说明

图1为本发明动态构建的分布式数据集群控制系统的结构示意图。

图2为本发明动态构建的分布式数据集群控制方法的流程图。

图3为本发明动态构建的分布式数据集群控制方法中数据同步的流程图。

图4为本发明动态构建的分布式数据集群控制方法中数据更新的流程图。

具体实施方式

结合图1,本发明一种动态构建的分布式数据集群控制系统,其特征在于,包括服务端装置1、管理端装置2、n个客户端装置3,服务端装置1同时与多个客户端装置3、管理端装置2连接;服务端装置1包括多个服务数据节点实例,所有服务数据节点实例构成一个服务节点集群,每个服务数据节点实例称为一个服务节点,其中某一个服务节点作为服务节点集群的中心主节点,其余服务节点均为数据从节点;

服务端装置1,用于解析并加载分布式数据集群节点的网络与基础配置信息,基础配置信息包括分布式集群数据节点配置信息、分布式集群数据节点网络配置信息、数据存储配置信息、日志记录配置信息。

管理端装置2,为用户提供管理分布式数据集群的接口,用户可以通过查询语言查询分布式数据集群的状态和数据信息,并可以初始化数据和更新数据;其中,集群的状态为服务节点正常工作或者故障。在分布式数据集群运行之前,管理端装置2对数据结构进行初始化即建立数据库表结构。

客户端装置3,用于查询中心主节点且建立连接,并执行数据同步和数据更新操作。

进一步地,一个服务节点作为服务节点集群的中心主节点,该中心主节点选取的具体过程为:

1)为服务节点集群中每个服务节点预设一个优先级,每个服务节点对应的优先级相同或者不同;

2)对优先级进行降序排列;

3)若最大的优先级对应的服务节点仅有一个,则将该服务节点作为中心主节点;若最大的优先级对应的服务节点有若干个,则通过hash法随机选取其中一个服务节点作为中心主节点;

4)客户端装置3定时向服务端装置发送心跳包,若某一个服务节点未能在设定时间内接收到心跳包即该服务节点发生故障,则将该服务节点从服务节点集群中移除,并将其数据复制到其它服务节点中,若中心主节点被移除,则重复上述2)、3)从剩余的服务节点中重新选取中心主节点。

结合图2,本发明动态构建的分布式数据集群控制方法,包括以下步骤:

步骤1、用户通过服务端装置1对分布式数据集群的配置信息进行解析操作;具体包括集群节点配置信息、集群节点网络配置信息、数据存储配置信息、日志记录配置信息;

步骤2、运行带参数的分布式数据集群节点,并且有序的将新增加的节点逐一添加入集群数据队列;

步骤3、根据服务端装置1中每个服务节点的hash值大小,将服务节点排序为有序环形;之后每个服务节点与距离其最近且正常工作的右侧节点连接,形成一个稳定的有序闭环,构建为一个动态的分布式数据集群;

步骤4、管理端装置2与服务端装置1建立连接;

步骤5、比较管理端装置2、服务端装置1的数据版本,若服务端装置1的数据版本比管理端装置2的数据版本新,则执行数据同步操作更新管理端装置2的数据版本;

步骤6、管理端装置2获取不到服务端装置1的数据版本,即表明服务端装置1的分布式数据集群为新构建的集群,由管理端装置2的数据库表结构对服务端装置1的数据进行初始化;

步骤7、客户端装置3与服务端装置1建立连接进行通信,并获取中心主节点进行连接;客户端装置3不间断的检测其与中心主节点的连接状态,若中心主节点发生故障则获取新的中心主节点进行连接;

步骤8、服务端装置1有新的数据信息,通知客户端装置3进行数据同步操作如图3所示,具体为:

步骤8-1、某一个客户端装置3的数据发生更新,由服务端装置1的中心主节点进行登记;

步骤8-2、中心主节点通知服务端装置1的其它数据从节点进行数据更新;

若多个客户端装置3的数据依次发生更新,由中心主节点依据更新的顺序依次进行登记且在中心主节点的内存中保存一定时间,获得数据更新包,并将该数据更新包提交至服务端装置1的数据库,之后再通知其它数据从节点进行数据更新;

步骤9、客户端装置3在服务端装置1没有数据更新通知的条件下查询其内部的数据以提供数据服务,提高服务的响应性;

步骤10、管理端装置2查询服务端装置1中分布式数据集群每个节点的状态和数据状态;

步骤11、管理端装置2通过数据查询语言查询服务端装置1的数据版本;

步骤12、管理端装置2与客户端装置3各自的数据版本更新后,均会同步更新至服务端装置1的数据库中如图4所示,具体为:

步骤12-1、某一个数据节点即管理端装置2或某一个客户端装置3将数据的更新写入内存中形成数据包;

步骤12-2、当事务提交时将数据包发送至中心主节点;

步骤12-3、对数据冲突进行分析:

1)任何时候,中心节点的数据状态均为数据的最终状态;

2)数据节点的数据落后中心节点时,仍可以对数据进行更新,但:

1)数据节点不能添加中心节点上已存在的条目。其中条目由主键确定,相同的主键被认为是同一条目;

2)数据节点不能删除中心节点上不存在的条目;

3)数据节点不能修改中心节点上已经修改过的条目,即中心节点的条目和数据节点的条目不一致时,不能修改;

3)数据节点的数据落后于中心主节点的数据,导致更新冲突时,将进行数据回滚,而不能提交到数据节点的数据库中;

4)数据节点的数据落后于中心主节点的数据,导致更新冲突时,主动与中心主节点进行同步;

步骤12-4、中心主节点将接收到的数据包写入中心主节点的数据库中,并立即将数据包发送至其他的数据节点即管理端装置2或客户端装置3,同时放入内存队列中,排队写入持久化存储中,从而不用等待磁盘io操作完成才返回,降低磁盘io时延;若数据节点同时接收到多个数据包,将一并提交至数据节点的数据库进行更新。

步骤13、服务端装置1将新版本数据分发到管理端装置2、客户端装置3进行数据同步。

进一步地,步骤4管理端装置2与服务端装置1建立连接、步骤7客户端装置3与服务端装置1建立连接进行通信,均是建立tcp通信连接。

进一步地,步骤12-2中将数据包发送至中心主节点采用tcp_nodelay的方式,强制有数据时立即发送,减少网络时延。

进一步地,在步骤12-4立即将数据包发送至其他的数据节点之后,数据节点会定时与中心主节点通信查询数据状态,数据节点更新数据冲突时,立即进行数据节点更新。

综上所述,通过使用本发明技术方案,针对稳定的数据业务服务场景下可以动态的构建分布式数据集群,提供数据分布、本地缓存、副本冗余备份、容错、事务、并发控制等功能支持;且在数据迁移、容错和并发读写的过程中保证数据的一致性,其同时为应用提供远程中心数据库的存储访问支持和数据同步;针对处理器计算时延、网络时延、磁盘io时延等问题,采用了数据管理的低时延保证技术,提高数据更新和同步的响应及时性。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1