数据库集群实现系统及方法
文献发布时间:2023-06-19 13:46:35
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据库集群实现系统及方法。
背景技术
现有的开源性时序型数据库使用时成本高昂,而单机版时序型数据库在存储和性能方面是有瓶颈的,在应用于物联网行业时不具备较高的可用性和扩展性。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种数据库集群实现系统及方法,旨在解决现有技术现有的时序型数据库应用时成本高同时可用性和扩展性低的问题的技术问题。
为实现上述目的,本发明提供了一种数据库集群实现系统,所述数据库集群实现系统包括:业务系统、代理模块以及时序型数据库节点;
所述业务系统:用于发送数据处理指令至所述代理模块;
所述代理模块:用于对所述数据处理指令进行拆分,确定对应的时序型数据库节点,并将所述数据处理指令发送至对应的时序型数据节点;
所述时序型数据库节点:用于根据所述数据处理指令进行数据处理得到对应的数据结果,并缓存所述数据结果;
所述代理模块:还用于获取所述时序型数据节点中的数据结果,并将所述数据结果发送至所述业务系统。
可选地,所述代理模块包括:指令拆分模块和指令分配模块;
所述指令拆分模块:用于对所述数据处理指令进行拆分,得到所述数据处理指令对应的目标标记键和目标标记值;
所述指令分配模块:用于基于所述目标标记键和所述目标标记值进行哈希值计算,根据得到的哈希值确定对应的时序型数据库节点,并将所述数据处理指令发送至对应的时序型数据库节点。
可选地,所述数据库集群实现系统还包括:节点注册模块;
所述节点注册模块:用于向初始时序型数据库节点发送状态查询请求,基于所述初始时序型数据库节点反馈对应的响应数据,通过所述响应数据对时序型数据库节点进行注册。
可选地,所述节点注册模块包括:请求发送模块、节点验证模块以及信息注册模块;
所述请求发送模块:用于向初始时序型数据库节点发送状态查询请求,以使初始时序型数据库节点分别反馈对应的响应数据;
所述节点验证模块:用于判断初始时序型数据库节点分别反馈对应的响应数据是否符合预设判断条件的响应数据,得到初始时序型数据库节点反馈的响应数据符合预设判断条件的响应数据对应的节点,并将符合预设判断条件的响应数据对应的节点作为时序型数据库节点;
所述信息注册模块:用于获取所述时序型数据库节点的目标信息,基于所述目标信息完成对时序型数据库节点的注册,所述目标信息包括时序型数据库节点分别对应的地址信息和哈希槽范围。
可选地,所述代理模块还包括:均衡服务器;
所述均衡服务器:用于获取各代理模块对应的数据处理指令数量,根据所述数据处理指令数量为数据处理指令分配对应的代理模块。
进一步地,为实现上述目的,本发明还提供一种数据库集群实现方法,所述数据库集群实现方法应用于如上文所述的数据库集群实现系统,所述数据库集群实现系统包括:业务系统、代理模块以及时序型数据库节点,所述数据库集群实现方法包括:
所述业务系统发送数据处理指令至所述代理模块;
所述代理模块对所述数据处理指令进行拆分,确定对应的时序型数据库节点,并将所述数据处理指令发送至对应的时序型数据节点;
所述时序型数据库节点根据所述数据处理指令进行数据处理得到对应的数据结果,并缓存所述数据结果;
所述代理模块获取所述时序型数据节点中的数据结果,并将所述数据结果发送至所述业务系统。
可选地,所述代理模块包括:指令拆分模块和指令分配模块;
所述代理模块对所述数据处理指令进行拆分,确定对应的时序型数据库节点,并将所述数据处理指令发送至对应的时序型数据节点,包括:
所述指令拆分模块对所述数据处理指令进行拆分,得到所述数据处理指令对应的目标标记键和目标标记值;
所述指令分配模块基于所述目标标记键和所述目标标记值进行哈希值计算,根据得到的哈希值确定对应的时序型数据库节点,并将所述数据处理指令发送至对应的时序型数据库节点。
可选地,所述数据库集群实现系统还包括:节点注册模块;
所述代理模块对所述数据处理指令进行拆分,确定对应的时序型数据库节点,并将所述数据处理指令发送至对应的时序型数据节点之前,还包括:
所述节点注册模块向初始时序型数据库节点发送状态查询请求,基于所述初始时序型数据库节点反馈对应的响应数据,通过所述响应数据对时序型数据库节点进行注册。
可选地,所述节点注册模块包括:请求发送模块、节点验证模块以及信息注册模块;
所述节点注册模块向初始时序型数据库节点发送状态查询请求,基于所述初始时序型数据库节点反馈对应的响应数据对时序型数据库节点进行注册,包括:
所述请求发送模块向初始时序型数据库节点发送状态查询请求,以使初始时序型数据库节点分别反馈对应的响应数据;
所述节点验证模块判断初始时序型数据库节点分别反馈对应的响应数据是否符合预设判断条件的响应数据,得到初始时序型数据库节点反馈的响应数据符合预设判断条件的响应数据对应的节点,并将符合预设判断条件的响应数据对应的节点作为时序型数据库节点;
所述信息注册模块获取所述时序型数据库节点的目标信息,基于所述目标信息完成对时序型数据库节点的注册,所述目标信息包括时序型数据库节点分别对应的地址信息和哈希槽范围。
可选地,所述代理模块还包括:均衡服务器;
所述将所述数据处理指令发送至对应的时序型数据节点之前,还包括:
所述均衡服务器获取各代理模块对应的数据处理指令数量,根据所述数据处理指令数量为数据处理指令分配对应的代理模块。
本发明中业务系统发送数据处理指令至所述代理模块;代理模块对数据处理指令进行拆分,确定对应的时序型数据库节点,并将数据处理指令发送至对应的时序型数据节点;时序型数据库节点根据数据处理指令进行数据处理得到对应的数据结果,并缓存数据结果;代理模块获取时序型数据节点中的数据结果,并将数据结果发送至业务系统。通过上述方式,代理模块在接收到业务系统的数据处理指令后为其分配对应的时序型数据库节点,时序型数据库节点反馈的结果通过代理模块整理后发送给业务系统,具备较高的可用型和扩展性,同时使用代理模块的代理服务代替现有时序型数据库的集群服务,代理模块下的时序型数据库节点可以无限扩展,解决了数据存储时的瓶颈问题,还降低了使用成本。
附图说明
图1是本发明数据库集群实现系统第一实施例的结构框图;
图2为本发明数据库集群实现系统一实施例的整体框架图;
图3为本发明数据库集群实现系统第二实施例的结构框图;
图4为本发明数据库集群实现系统一实施例的哈希值虚拟圆环;
图5为本发明数据库集群实现方法第一实施例的流程示意图;
图6为本发明数据库集群实现方法第二实施例的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明数据库集群实现系统第一实施例的结构框图。
在本实施例中,所述数据库集群实现系统包括:业务系统10、代理模块20以及时序型数据库节点30;所述业务系统10:用于发送数据处理指令至所述代理模块20;所述代理模块20:用于对所述数据处理指令进行拆分,确定对应的时序型数据库节点30,并将所述数据处理指令发送至对应的时序型数据节点30;所述时序型数据库节点30:用于根据所述数据处理指令进行数据处理得到对应的数据结果,并缓存所述数据结果;所述代理模块20:还用于获取所述时序型数据节点30中的数据结果,并将所述数据结果发送至所述业务系统10。
需要说明的是,所述业务系统10指的是有数据查询或数据写入需求的外部系统,业务系统10不与时序型数据库节点30即InfluxDB数据库节点建立连接,而是与数据库集群实现系统中的代理模块20即代理服务建立连接,在业务系统10有调用查询数据和数据写入的请求时,会向代理模块20发出写入数据请求或查询数据请求,写入数据请求或查询数据请求即为数据处理指令。
需要说明的是,所述代理模块20指的是时序型数据库的集群代理服务,支持集群部署,即为InfluxDB数据库集群代理服务,代理模块20负责整合多个时序型数据库节点30的数据,并对业务系统10提供对时序型数据库的查询和写入接口。
可以理解的是,在代理模块20获取到业务系统10发出的数据处理指令后,对数据处理指令进行拆分,根据拆分后得到的目标标记值TagValue和目标标记键TagKey即可确定本次所要执行操作的数据分布在哪一个时序型数据库节点30即InfluxDB数据库节点上,在确定好时序型数据库节点30后将数据处理指令发送至对应的时序型数据库节点30进行相应的操作。
在具体实现中,为了能够使代理模块20中存在的所有时序型数据库节点30都有效,进一步地,所述数据库集群实现系统还包括:节点注册模块;所述代理模块20对所述数据处理指令进行拆分,确定对应的时序型数据库节点,并将所述数据处理指令发送至对应的时序型数据节点之前,还包括:所述节点注册模块向初始时序型数据库节点发送状态查询请求,基于所述初始时序型数据库节点反馈对应的响应数据,通过所述响应数据对时序型数据库节点30进行注册。
需要说明的是,所述节点注册模块指的是用于时序型数据库节点30注册的机制,节点注册模块和开放源码的分布式应用程序协调服务ZooKeeper结合使用,负责维护时序型数据库节点30的状态和基础信息。
可以理解的是,所述状态查询请求指的是节点注册模块通过管理员预设频率向初始的时序型数据库节点发送的验证请求,在节点注册模块发送状态查询请求后,初始时序型数据库节点会分别反馈对应的响应数据,根据响应数据完成对初始时序型数据库节点中的符合预设判断条件的时序型数据库节点的注册。
在具体实现中,为了能够对符合预设判断条件的时序型数据库节点30进行注册,进一步地,所述节点注册模块包括:请求发送模块、节点验证模块以及信息注册模块;所述节点注册模块向初始时序型数据库节点发送状态查询请求,基于所述初始时序型数据库节点反馈对应的响应数据对时序型数据库节点进行注册,包括:所述请求发送模块向初始时序型数据库节点发送状态查询请求,以使初始时序型数据库节点分别反馈对应的响应数据;所述节点验证模块判断初始时序型数据库节点分别反馈对应的响应数据是否符合预设判断条件的响应数据,得到初始时序型数据库节点反馈的响应数据符合预设判断条件的响应数据对应的节点,并将符合预设判断条件的响应数据对应的节点作为时序型数据库节点;所述信息注册模块获取所述时序型数据库节点的目标信息,基于所述目标信息完成对时序型数据库节点的注册,所述目标信息包括时序型数据库节点分别对应的地址信息和哈希槽范围。
需要说明的是,所述请求发送模块指的是节点注册模块中用于通过管理员预设频率向初始的时序型数据库节点发送状态查询请求的模块,并接收各初始时序型数据库节点分别反馈的对应的响应数据。
可以理解的是,所述节点验证模块指的是节点注册模块中用于对各初始时序型数据库节点分别反馈的对应的响应数据进行验证判断的模块。所述预设判断条件指的是预先设定的用于判断时序型数据库节点是否能够注册的条件。
应当理解的是,所述信息注册模块指的是节点注册模块中用于对符合预设判断条件的时序型数据库节点30进行注册。
应当理解的是,请求发送模块通过预设频率向初始时序型数据库节点发送状态查询请求,以使各初始时序型数据库节点反馈对应的响应数据,根据预设判断条件对响应数据进行判断,得到初始时序型数据库节点中反馈的响应数据符合预设判断条件的响应数据对应的节点,该节点即为正常节点,对正常的时序型数据库节点通过一致性哈希算法计算该节点的哈希槽范围,并向节点注册模块中的ZooKeeper集群注册该节点的目标信息,目标信息包括该时序型数据库节点的基础信息和核心信息,核心信息包括时序型数据库节点分别对应的地址信息和哈希槽范围,初始时序型数据库节点中反馈的响应数据不符合预设判断条件的响应数据对应的节点的目标信息从ZooKeeper集群中删除。
在具体实现中,为了实现负载均衡,进一步地,所述代理模块20还包括:均衡服务器;所述将所述数据处理指令发送至对应的时序型数据节点30之前,还包括:所述均衡服务器获取各代理模块对应的数据处理指令数量,根据所述数据处理指令数量为数据处理指令分配对应的代理模块。
需要说明的是,所述均衡服务器指的是高性能的HTTP和反向代理web服务器Nginx,通过均衡服务器为业务系统10发出的数据处理指令分配对应的代理模块20,从而实现负载均衡。
可以理解的是,如图2所示为数据库集群实现系统的整体框图,proxy server为代理服务系统即代理模块,shard node即为注册后的时序型数据库节点,alive checkservice为自检服务即为节点注册模块,当业务系统10发送数据处理请求后,均衡服务器在代理模块集群即代理服务集群中为其分配对应的代理模块20,代理模块20又为数据处理指令分配对应的时序型数据库节点30,在分配时序型数据库节点之前,节点注册模块会对符合预设判断条件的时序型数据库节点30进行注册。
需要说明的是,所述时序型数据库节点30指的是由一个单机版的InfluxDB数据库构成的一个节点,负责存储业务数据,对代理模块提供数据操作接口,不同的时序型数据库节点30负责存储不同的数据,存储的数据由代理模块20决定并分配。
可以理解的是,当数据处理指令为写入数据请求时,根据代理模块20中确定的时序型数据库节点和待写入数据列表的对应关系,向每个时序型数据库节点30执行写入操作,时序型数据库系节点30并把写入的数据缓存起来。
在具体实现中,当数据处理指令为查询数据请求时,根据代理模块20中得到的时序型数据库列表确定的时序型数据库节点30,向对应的时序型数据库节点30发起查询请求,该时序型数据库节点30并将查询结果缓存起来。
需要说明的是,代理模块20获取并汇总各时序型数据库节点30中的数据结果,将数据结果发送至业务系统10。
可以理解的是,当时序型数据库节点30执行的写入操作时,当时序型数据库节点30的所有写入操作完成后,代理模块20汇总每个时序型数据库节点30的缓存结果,将缓存结果发送至业务系统,当时序型数据库节点30执行的查询操作时,当时序型数据库节点30的所有查询请求完成后,代理模块20汇总查询结果,若查询参数中有分页参数,将查询结果列表按照时间排序,然后根据分页参数获取到实际查询的数据,将实际结果发送至业务系统10。
本实施例中业务系统发送数据处理指令至所述代理模块;代理模块对数据处理指令进行拆分,确定对应的时序型数据库节点,并将数据处理指令发送至对应的时序型数据节点;时序型数据库节点根据数据处理指令进行数据处理得到对应的数据结果,并缓存数据结果;代理模块获取时序型数据节点中的数据结果,并将数据结果发送至业务系统。通过上述方式,代理模块在接收到业务系统的数据处理指令后为其分配对应的时序型数据库节点,时序型数据库节点反馈的结果通过代理模块整理后发送给业务系统,具备较高的可用型和扩展性,同时使用代理模块的代理服务代替现有时序型数据库的集群服务,代理模块下的时序型数据库节点可以无限扩展,解决了数据存储时的瓶颈问题,还降低了使用成本。
参照图3,图3为本发明数据库集群实现系统第一实施例的结构框图,基于上述第一实施例,提出本发明数据库集群实现系统的第二实施例。
在本实施例中,所述代理模块20包括:指令拆分模块201和指令分配模块202。
需要说明的是,所述指令拆分模块201指的是代理模块20中用于对数据处理指令进行拆分的模块。
可以理解的是,当业务系统在调用查询和写入接口时,会在请求头Header传入两个参数,即目标标记键TagKey的名称和参与本次查询的目标标记值TagValue,目标标记值可以有多个,指令拆分模块201对数据处理指令进行拆分,即可得到目标标记值和目标标记键。
需要说明的是,所述指令分配模块202指的是代理模块中用于确定对应的时序型数据库节点30的模块。
可以理解的是,指令分配模块202中利用一致性哈希将整个哈希值空间组织成一个虚拟的圆环,每个时序型数据库节点通过IP+服务器名称计算哈希值后,该节点对应的哈希值会分布在圆环中。
在具体实现中,指令分配模块202获取到目标标记值和目标标记键后,计算目标标记键TagKey+目标标记值TagValue的哈希值,根据得到哈希值在虚拟圆环中查找对应的时序型数据库节点30,并将数据处理指令发送至对应的时序型数据库节点30。如图4所示为哈希值空间组织成的虚拟圆环,当得到目标标记键TagKey+目标标记值TagValue的哈希值后,以得到的哈希值为七点,沿顺时针方向,查找第一个时序型数据库节点30,该节点即为该目标标记值坐在节点(图4中的Object B分布在Node B节点上,Object指的是目标标记值,Node指的是时序型数据库节点)。
本实施例中所述指令拆分模块对所述数据处理指令进行拆分,得到所述数据处理指令对应的目标标记键和目标标记值;所述指令分配模块基于所述目标标记键和所述目标标记值进行哈希值计算,根据得到的哈希值确定对应的时序型数据库节点,并将所述数据处理指令发送至对应的时序型数据库节点。通过一致性哈希算法确定对应的时序型数据库节点,保证了数据能够均衡的分布到多个节点,同时能够准确的确定对应的时序型数据库节点。
参照图5,图5为本发明数据库集群实现方法第一实施例的流程示意图,所述数据库集群实现方法应用于如上文所述的数据库集群实现系统,所述数据库集群实现系统包括:业务系统、代理模块以及时序型数据库节点,所述数据库集群实现方法包括:
步骤S10:所述业务系统发送数据处理指令至所述代理模块。
需要说明的是,本实施例的执行主体为数据库集群实现系统,在业务系统发出了数据处理指令后,代理模块对数据处理指令进行拆分处理,为数据处理指令找到对应的时序型数据库节点进行操作并缓存,代理模块对时序型数据库节点中得到的数据进行聚合,并将聚合后的数据结果统一反馈给业务系统。
可以理解的是,所述业务系统指的是有数据查询或数据写入需求的外部系统,业务系统不与时序型数据库节点即InfluxDB数据库节点建立连接,而是与数据库集群实现系统中的代理模块即代理服务建立连接,在业务系统有调用查询数据和数据写入的请求时,会向代理模块发出写入数据请求或查询数据请求,写入数据请求或查询数据请求即为数据处理指令。
步骤S20:所述代理模块对所述数据处理指令进行拆分,确定对应的时序型数据库节点,并将所述数据处理指令发送至对应的时序型数据节点。
需要说明的是,所述代理模块指的是时序型数据库的集群代理服务,支持集群部署,即为InfluxDB数据库集群代理服务,代理模块负责整合多个时序型数据库节点的数据,并对业务系统提供对时序型数据库的查询和写入接口。
可以理解的是,在代理模块获取到业务系统发出的数据处理指令后,对数据处理指令进行拆分,根据拆分后得到的目标标记值TagValue和目标标记键TagKey即可确定本次所要执行操作的数据分布在哪一个时序型数据库节点即InfluxDB数据库节点上,在确定好时序型数据库节点后将数据处理指令发送至对应的时序型数据库节点进行相应的操作。
在具体实现中,为了能够使代理模块中存在的所有时序型数据库节点都有效,进一步地,所述数据库集群实现系统还包括:节点注册模块;所述代理模块对所述数据处理指令进行拆分,确定对应的时序型数据库节点,并将所述数据处理指令发送至对应的时序型数据节点之前,还包括:所述节点注册模块向初始时序型数据库节点发送状态查询请求,基于所述初始时序型数据库节点反馈对应的响应数据,通过所述响应数据对时序型数据库节点进行注册。
需要说明的是,所述节点注册模块指的是用于时序型数据库节点注册的机制,节点注册模块和开放源码的分布式应用程序协调服务ZooKeeper结合使用,负责维护时序型数据库节点的状态和基础信息。
可以理解的是,所述状态查询请求指的是节点注册模块通过管理员预设频率向初始的时序型数据库节点发送的验证请求,在节点注册模块发送状态查询请求后,初始时序型数据库节点会分别反馈对应的响应数据,根据响应数据完成对初始时序型数据库节点中的符合预设判断条件的时序型数据库节点的注册。
在具体实现中,为了能够对符合预设判断条件的时序型数据库节点进行注册,进一步地,所述节点注册模块包括:请求发送模块、节点验证模块以及信息注册模块;所述节点注册模块向初始时序型数据库节点发送状态查询请求,基于所述初始时序型数据库节点反馈对应的响应数据对时序型数据库节点进行注册,包括:所述请求发送模块向初始时序型数据库节点发送状态查询请求,以使初始时序型数据库节点分别反馈对应的响应数据;所述节点验证模块判断初始时序型数据库节点分别反馈对应的响应数据是否符合预设判断条件的响应数据,得到初始时序型数据库节点反馈的响应数据符合预设判断条件的响应数据对应的节点,并将符合预设判断条件的响应数据对应的节点作为时序型数据库节点;所述信息注册模块获取所述时序型数据库节点的目标信息,基于所述目标信息完成对时序型数据库节点的注册,所述目标信息包括时序型数据库节点分别对应的地址信息和哈希槽范围。
需要说明的是,所述请求发送模块指的是节点注册模块中用于通过管理员预设频率向初始的时序型数据库节点发送状态查询请求的模块,并接收各初始时序型数据库节点分别反馈的对应的响应数据。
可以理解的是,所述节点验证模块指的是节点注册模块中用于对各初始时序型数据库节点分别反馈的对应的响应数据进行验证判断的模块。所述预设判断条件指的是预先设定的用于判断时序型数据库节点是否能够注册的条件。
应当理解的是,所述信息注册模块指的是节点注册模块中用于对符合预设判断条件的时序型数据库节点进行注册。
应当理解的是,请求发送模块通过预设频率向初始时序型数据库节点发送状态查询请求,以使各初始时序型数据库节点反馈对应的响应数据,根据预设判断条件对响应数据进行判断,得到初始时序型数据库节点中反馈的响应数据符合预设判断条件的响应数据对应的节点,该节点即为正常节点,对正常的时序型数据库节点通过一致性哈希算法计算该节点的哈希槽范围,并向节点注册模块中的ZooKeeper集群注册该节点的目标信息,目标信息包括该时序型数据库节点的基础信息和核心信息,核心信息包括时序型数据库节点分别对应的地址信息和哈希槽范围,初始时序型数据库节点中反馈的响应数据不符合预设判断条件的响应数据对应的节点的目标信息从ZooKeeper集群中删除。
在具体实现中,为了实现负载均衡,进一步地,所述代理模块还包括:均衡服务器;所述将所述数据处理指令发送至对应的时序型数据节点之前,还包括:所述均衡服务器获取各代理模块对应的数据处理指令数量,根据所述数据处理指令数量为数据处理指令分配对应的代理模块。
需要说明的是,所述均衡服务器指的是高性能的HTTP和反向代理web服务器Nginx,通过均衡服务器为业务系统发出的数据处理指令分配对应的代理模块,从而实现负载均衡。
步骤S30:所述时序型数据库节点根据所述数据处理指令进行数据处理得到对应的数据结果,并缓存所述数据结果。
需要说明的是,所述时序型数据库节点指的是由一个单机版的InfluxDB数据库构成的一个节点,负责存储业务数据,对代理模块提供数据操作接口,不同的时序型数据库节点负责存储不同的数据,存储的数据由代理模块决定并分配。
可以理解的是,当数据处理指令为写入数据请求时,根据代理模块中确定的时序型数据库节点和待写入数据列表的对应关系,向每个时序型数据库节点执行写入操作,时序型数据库系节点并把写入的数据缓存起来。
在具体实现中,当数据处理指令为查询数据请求时,根据代理模块中得到的时序型数据库列表确定的时序型数据库节点,向对应的时序型数据库节点发起查询请求,该时序型数据库节点并将查询结果缓存起来。
步骤S40:所述代理模块获取所述时序型数据节点中的数据结果,并将所述数据结果发送至所述业务系统。
需要说明的是,代理模块获取并汇总各时序型数据库节点中的数据结果,将数据结果发送至业务系统。
可以理解的是,当时序型数据库节点执行的写入操作时,当时序型数据库节点的所有写入操作完成后,代理模块汇总每个时序型数据库节点的缓存结果,将缓存结果发送至业务系统,当时序型数据库节点执行的查询操作时,当时序型数据库节点的所有查询请求完成后,代理模块汇总查询结果,若查询参数中有分页参数,将查询结果列表按照时间排序,然后根据分页参数获取到实际查询的数据,将实际结果发送至业务系统。
本实施例中业务系统发送数据处理指令至所述代理模块;代理模块对数据处理指令进行拆分,确定对应的时序型数据库节点,并将数据处理指令发送至对应的时序型数据节点;时序型数据库节点根据数据处理指令进行数据处理得到对应的数据结果,并缓存数据结果;代理模块获取时序型数据节点中的数据结果,并将数据结果发送至业务系统。通过上述方式,代理模块在接收到业务系统的数据处理指令后为其分配对应的时序型数据库节点,时序型数据库节点反馈的结果通过代理模块整理后发送给业务系统,具备较高的可用型和扩展性,同时使用代理模块的代理服务代替现有时序型数据库的集群服务,代理模块下的时序型数据库节点可以无限扩展,解决了数据存储时的瓶颈问题,还降低了使用成本。
图6为本发明数据库集群实现方法第二实施例的流程示意图,基于上述第一实施例,提出本发明数据库集群实现方法第二实施例。
在本实施例中,所述代理模块包括:指令拆分模块和指令分配模块,所述步骤S20包括:
步骤S201:所述指令拆分模块对所述数据处理指令进行拆分,得到所述数据处理指令对应的目标标记键和目标标记值。
需要说明的是,所述指令拆分模块指的是代理模块中用于对数据处理指令进行拆分的模块。
可以理解的是,当业务系统在调用查询和写入接口时,会在请求头Header传入两个参数,即目标标记键TagKey的名称和参与本次查询的目标标记值TagValue,目标标记值可以有多个,指令拆分模块对数据处理指令进行拆分,即可得到目标标记值和目标标记键。
步骤S202:所述指令分配模块基于所述目标标记键和所述目标标记值进行哈希值计算,根据得到的哈希值确定对应的时序型数据库节点,并将所述数据处理指令发送至对应的时序型数据库节点。
需要说明的是,所述指令分配模块指的是代理模块中用于确定对应的时序型数据库节点的模块。
可以理解的是,指令分配模块中利用一致性哈希将整个哈希值空间组织成一个虚拟的圆环,每个时序型数据库节点通过IP+服务器名称计算哈希值后,该节点对应的哈希值会分布在圆环中。
在具体实现中,指令分配模块获取到目标标记值和目标标记键后,计算目标标记键TagKey+目标标记值TagValue的哈希值,根据得到哈希值在虚拟圆环中查找对应的时序型数据库节点,并将数据处理指令发送至对应的时序型数据库节点。
本实施例中所述指令拆分模块对所述数据处理指令进行拆分,得到所述数据处理指令对应的目标标记键和目标标记值;所述指令分配模块基于所述目标标记键和所述目标标记值进行哈希值计算,根据得到的哈希值确定对应的时序型数据库节点,并将所述数据处理指令发送至对应的时序型数据库节点。通过一致性哈希算法确定对应的时序型数据库节点,保证了数据能够均衡的分布到多个节点,同时能够准确的确定对应的时序型数据库节点。
此外,需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器(Read Only Memory,ROM)/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
- 一种分布式数据库集群中实现数据分布的方法及系统
- 一种数据库集群功能实现方法和系统