首页> 中国专利> 铁路地质灾害监测分布式数据库集群的扩展方法与系统

铁路地质灾害监测分布式数据库集群的扩展方法与系统

摘要

本发明公开了一种铁路地质灾害监测分布式数据库集群扩展方法及系统,包括:获取用户的节点扩展请求,节点拓展请求包括:监测数据的类型与频率;获取多个从节点的状态参数;根据状态参数对多个从节点进行评估,将分值最高的n个从节点推荐给用户;获取用户选择的n个从节点,根据用户选择的n个从节点进行分布式数据库集群的自动扩展。本发明通过在用户的每一次节点扩展请求中,对集群中各从节点性能的状态参数进行实时评价、从而能够为用户提供最优从节点供用户进行参考,辅助用户做出正确的选择;并在用户进行节点选择后,通过在预置在系统中的配置管理控制方法控制分布式数据库集群进行节点的自动扩展,无需进行复杂的人工文件配置。

著录项

说明书

技术领域

本发明涉及铁路地质灾害监测分布式数据库配置管理技术领域,特别涉及一种铁路地质灾害监测分布式数据库集群的扩展方法与系统。

背景技术

随着铁路沿线工点地质灾害监测的数据不断增长,受单个服务器的存储容量和数据访问请求性能的限制,原来的数据库服务器横向扩展无法满足多个新增工点的海量数据存储需求。例如,在边坡应用中,监测设备可能达到10万台,每台设备每天产生24种数据。同时还要能够保证数据在1.5s内写入100000条以及查询1000000行数据的时间小于2s。那么随着时间逐渐增长,原有单个节点的数据库远远无法满足数据存储和访问的需求。因此,需要通过分布式数据库集群来对铁路地质灾害监测数据进行存储。

Mycat是一个典型的数据库集群中间件开源软件,其基于阿里巴巴开源的 cobar上开发而来。它能够快速地对开源数据库MySQL进行数据库集群管理,便于实现数据库服务器节点水平扩展,以便支撑日益增长的数据量。该数据库集群中间件软件提供了水平切分、垂直切分的功能,还提供了读写分离、宕机自动切换等功能。Mycat还支持原生的MySQL协议,所以其客户端可以是任意语言以及平台。由于它采用NIO实现数据处理,所以其能更好地解决高并发的问题,支持大量的数据请求访问。它支持常用的SUM、COUNT等聚合函数,并且支持跨库分页、跨库两表join操作,支持分布式事务等。通过Mycat数据库集群中间件能够提供存储和访问大量数据的能力。同时通过MySQL数据库的主从复制技术与Mycat数据库中间件的读写分离和故障自动切换功能可以保证数据高效访问以及高可用。同时,通过负载均衡器可以保证整个集群的高性能,而通过虚拟IP技术则可以保证负载均衡器的高可用。最终就会构建一个高性能高可用的分布式数据库集群平台。基于上述Mycat的性能优势,将Mycat分布式数据库集群平台应用于铁路地质灾害监测中,能够满足于铁路地质灾害监测数据库集群存储的需求。

但是在分布式数据库集群平台扩展数据库服务器节点的过程中,每扩展一个节点都需要修改分布式数据库集群平台中Mycat数据库中间件服务器的多个配置文件。特别是当分布式数据库集群平台中使用多个Mycat数据库中间件服务器时,对各个Mycat服务器配置文件修改会一个非常麻烦的事情。此外,人工手动修改服务器配置文件可能会带来误操作,使得Mycat中间件服务器在修改配置文件后重启失败,从而导致系统业务处理会中断一段时间。并且在铁路沿线工点地质灾害监测分析应用中,需要监测的铁路沿线工点是逐步增加、且每次增加的传感器种类也可能是变化的,也就是监测数据类型与频率是不断变化的,这就要求需要数据库集群平台可以根据监测数据增长动态加入数据库服务器节点;此外,铁路地质灾害监测分析应用系统中的数据库集群平台规模较大,使用了多台数据库中间件Mycat服务器。每当在铁路监测工点中增加一个或两个传感器设备时,其监测数据存储就需要扩充1个MySQL数据库服务器节点。因此,在铁路沿线工点地质灾害监测分析应用中,相应的分布式数据库集群平台需要频繁、动态、实时地进行节点的扩展与修改。而在节点扩展的过程中,如果仅由工作人员进行节点的自主选择与设定,工作人员可能会因为频繁地进行节点扩展选择而出现人为错误选择或者无法做出选择;而错误的选择可能会存在选择到状态不佳的节点、导致分布式数据库集群系统出现效率低下的问题。并且由于在每个节点服务器加入集群平台的过程中,都需要在中间件服务器的几个配置文件中进行参数配置处理。如果数据库集群的服务器节点增加是采用人工手动修改多个中间件服务器配置文件的方式来添加服务器节点,会特别繁琐,并且会带来人工修改配置容易出错、业务系统暂停服务、平台运维人员要求高等问题。

发明内容

本发明的目的在于克服现有技术中针对铁路地质灾害监测分析应用中人工进行节点的选择会出现选择错误或者无法选择、导致新选择的扩展节点状态不佳、进而导致分布式数据库集群系统出现效率低下,以及人工进行配置文件的修改易错、容易导致系统崩溃的问题,本发明提出一种铁路地质灾害监测分布式数据库集群的扩展方法与系统,本发明能够实现节点的自动扩展,辅助用户选择到最适合的节点进行扩展,有效避免人工设置容易出错的问题。

为了实现上述发明目的,本发明提供了以下技术方案:

一种铁路地质灾害监测分布式数据库集群扩展方法,包括:

A、获取用户的节点扩展请求,所述节点拓展请求包括:监测数据的类型与频率;访问分布式数据库集群中多个从节点,获取多个所述从节点的状态参数;根据多个所述从节点的状态参数对多个所述从节点进行评估,将分值最高的n 个从节点推荐给用户;其中,n为本次节点扩展请求中用户需求的节点数量;

B、获取用户选择的n个从节点,采用预先建立的配置管理算法根据用户选择的n个从节点以及所述监测数据的类型与频率,控制所述分布式数据库集群进行节点的自动扩展。

优选的,上述铁路地质灾害监测分布式数据库集群扩展方法中,所述状态参数包括:节点内存使用量、节点剩余可用空间百分比、节点使用分区量、节点I/O占用百分比、最大并发数、节点CPU使用百分比。

优选的,上述铁路地质灾害监测分布式数据库集群扩展方法中,所述根据多个所述从节点的状态参数对多个所述从节点进行评分,将分值最高的n个从节点推荐给用户,包括:

步骤101:根据所述监测数据频率对从节点的并发数进行验证,验证是否超过该从节点的最大并发数,若是,则所述从节点不能被选择、为禁用从节点;若否,则所述节点能够被选择,并进入步骤102;

步骤102,对所述从节点的各个状态参数依次进行打分,并对各个状态参数的分值进行加权计算,根据加权计算结果得到所述从节点的分值;

步骤103,对具有分值的多个从节点进行排序,找到分值最高的n个从节点推荐给用户。

优选的,上述铁路地质灾害监测分布式数据库集群扩展方法中,所述步骤B 包括:

步骤201,将用户选择的n个从节点与所述分值最高的n个从节点进行匹配,若匹配结果为完全一致,则进入步骤203;若否,即存在不匹配的从节点,则进入步骤202;

步骤202,对不匹配的从节点的并发数进行验证,根据所述监测数据频率验证是否超过所述从节点的最大并发数,若是,则禁止用户选择该从节点,并向用户发出重新选择的提示信息;若否,则进入步骤203;

步骤203,采用预先建立的配置管理算法根据用户选择的n个从节点以及所述监测数据的类型与频率,控制所述分布式数据库集群进行节点的自动扩展。

优选的,上述铁路地质灾害监测分布式数据库集群扩展方法中,采用激活函数根据所述监测数据频率对用户选择的从节点的并发数进行验证。

优选的,上述铁路地质灾害监测分布式数据库集群扩展方法中,所述预先建立的配置管理算法通过以下步骤控制所述分布式数据库集群进行自动扩展

由配置管理服务器读取集群平台各数据库中间件服务器的IP地址和端口信息,并对主节点进行网络连通性检查;当网络合格后,根据用户选择的从节点以及所述监测数据的类型更新分布式数据库集群的状态表,利用更新后的分布式数据库集群状态表生成配置文件,控制所述分布式数据库集群中的主节点依次根据所述配置文件进行更新与重启。

在本发明进一步的实施例中还提供一种铁路地质灾害监测分布式数据库集群扩展系统,包括:

配置管理平台,用于提供人机交互接口,获取用户输入的节点扩展请求与用户选择的从节点,并转发给配置服务器;以及将配置服务器计算得到的分值最高的n个从节点展示给用户;

配置服务器,用于接收所述节点扩展请求,根据所述节点扩展请求访问分布式数据库集群中多个从节点,获取多个所述从节点的状态参数;根据多个所述从节点的状态参数对多个所述从节点进行评估,将分值最高的n个从节点通过所述配置管理平台展示给用户;其中,n为本次节点扩展请求中用户需求的节点数量;

以及,用于接收用户选择的n个从节点,并采用预先建立的配置管理算法根据用户选择的n个从节点以及所述监测数据的类型与频率,控制所述分布式数据库集群进行节点的自动扩展。

与现有技术相比,本发明的有益效果:

本方法通过在用户的每一次节点扩展请求中,对集群中各从节点性能的状态参数进行实时评价、从而能够根据集群中各节点的分值高低为工作人员(用户)提供最优从节点,供用户进行参考,辅助用户做出正确的选择、完成高效准确的节点分配;并在用户进行节点选择后,通过在预置在系统中的配置管理控制方法控制分布式数据库集群进行节点的自动扩展。

进一步的,本发明针对用户选择的节点设计了一种基于并发数的节点验证机制,保证用户不会选择到错误的从节点,并在用户选择了相应的从节点之后,通过基于并发数的节点验证机制对用户选择的节点进行再次确认,保证用户不会选择到错误的从节点,在用户选择满足要求后,再执行相应的自动扩展。

附图说明:

图1是本发明示例性实施例的铁路地质灾害监测分布式数据库集群平台架构图;

图2是本发明示例性实施例的铁路地质灾害监测分布式数据库集群扩展方法流程图;

图3是本发明示例性实施例的配置服务器控制分布式数据库集群进行自动扩展的控制原理图;

图4是本发明示例性实施例的利用配置管理算法修改中间件服务器配置文件的流程图;

图5是本发明示例性实施例的mysql_info表图;

图6是本发明示例性实施例的group_info表图;

图7是本发明示例性实施例的mycat_info表图;

图8是本发明示例性实施例的扩充一组集群后的mysql_info表图;

图9是本发明示例性实施例的插入新数据后的group_info表图;

图10是本发明示例性实施例的设置的schema.xml配置文件图;

图11是本发明示例性实施例的autopartition-long.txt配置文件图。

具体实施方式

下面结合试验例及具体实施方式对本发明作进一步的详细描述。但不应将此理解为本发明上述主题的范围仅限于以下的实施例,凡基于本发明内容所实现的技术均属于本发明的范围。

实施例1

具体的,图1示出了本发明示例性实施例的铁路地质灾害监测分布式数据库集群平台架构示意图。该平台包括:应用程序层:实现铁路地质灾害监测业务应用。

数据库访问分发调度层:该层使用负载均衡软件HAProxy来进行数据库访问分发处理。该软件根据每个数据库中间件服务器的负载反馈状态进行分发,从而使数据库访问请求平均分配到数据库中间件服务器上,实现分布式并发处理。而负载均衡器可能会出现单点故障,那么整个平台将无法访问,因此需要对负载均衡器进行冗余架构设计,使用另一台相同配置的负载均衡器作为备用。为了保证HAProxy的可靠性,该平台采用了高可用服务软件(如keepalived)解决这两台负载均衡器的单点故障问题。

分布式数据库中间件层(主节点):该层由多个Mycat数据库中间件服务器组成。在负载均衡软件的协助下实现Mycat数据库中间件服务器的高可靠性和高性能访问。数据库中间件服务器对数据库集群平台节点服务器进行分布式管理。

分布式数据库节点层(从节点):由多台MySQL数据库服务器构成分布式数据库节点层,本层数据库服务器分布存储了大量铁路地质灾害监测设备采集的传感器数据。

进一步的,图2示出了本发明示例性实施例的铁路地质灾害监测分布式数据库集群扩展方法,包括:

A、获取用户的节点扩展请求,所述节点拓展请求包括:监测数据的类型与频率、用户需求的节点数量;访问分布式数据库集群中多个从节点,获取多个所述从节点的状态参数;根据多个所述从节点的状态参数对多个所述从节点进行评估,将分值最高的n个从节点推荐给用户;

B、获取用户选择的n个从节点,采用预先建立的配置管理算法根据用户选择的n个从节点以及所述监测数据的类型与频率,控制所述分布式数据库集群进行节点的自动扩展。

具体的,当有新的传感器数据需要加入到数据库集群中时,首选需要选择其分配到节点组。集群中有多个从节点,根据当前每个从节点上mysql性能参数主要有I/O性能,磁盘占用,网络设备性能,CPU处理能力,内存空间使用情况等,数据库中当前数据量也会影响其查询性能。

当工作人员需要进行节点拓展时,会通过相应的人机交互接口发出节点拓展请求,所述节点拓展请求包括:监测数据的类型与频率以及本次请求中用户所需要的节点数量(n);此时,配置服务器可通过管理平台获取到该节点扩展请求,当配置服务器获取到节点扩展请求时,会访问分布式数据库集群中多个从节点,获取多个所述从节点的状态参数,从而能够根据从节点的状态参数对节点性能进行评估计算;其中,每个从节点的状态参数信息包括:1.从节点上 mysql内存使用情况(单位M);2.从节点剩余可用空间情况,单位%;3.当前从节点数据库使用分区情况,单位个;4.从节点一天内最大并发;5.当前从节点 I/O占用参数,单位%;6.从节点上mysql的cpu使用情况,单位%。通过这6 个状态参数来判断从节点是否可选,以及计算每个从节点的分值、计算得到分值最高的n个从节点推荐给用户。

进一步的,该从节点评估方法具体包括:步骤101:根据所述监测数据频率对从节点的并发数进行验证,验证是否超过该从节点的最大并发数,若是,则所述从节点不能被选择、为禁用从节点;若否,则所述节点能够被选择,并进入步骤102;

步骤102,对所述从节点的各个状态参数依次进行打分,并对各个状态参数的分值进行加权计算,根据加权计算结果得到所述从节点的分值;

步骤103,对具有分值的多个从节点进行排序,找到分值最高的n个从节点推荐给用户。而当系统根据每个从节点的分数计算得到了n个分值最高的从节点之后,会通过人机交互界面展示给用户,用户会做出选择,选择n个从节点,此时,需要对用户的选择进行判断和验证,包括:

步骤201,将用户选择的n个从节点与所述分值最高的n个从节点进行匹配,若匹配结果为完全一致,则进入步骤103;若否,即存在不匹配的从节点,则进入步骤102;

步骤202,对不匹配的从节点的并发数进行验证,根据所述监测数据频率验证是否超过所述从节点的最大并发数,若是,则禁止用户选择该从节点,并向用户发出重新选择的提示信息;若否,则进入步骤103;

步骤203,根据用户选择的n个从节点以及所述监测数据的类型与频率进行分布式数据库集群的自动扩展。例如,通过分值计算向推荐的从节点ID为:3、 1、2、4;假设用户选择的节点为1、2、3、4;那么用户的选择就与推荐的节点完全匹配,直接进入步骤103即可,假设用户基于实际需求选择的节点为3、1、2、5;那么5就是不匹配的从节点,需要进入步骤102,对从节点5进行并发数验证,(如果在前序步骤中对从节点5已经进行了验证,即可直接调用验证结果,无需进行二次计算),若验证结果为未超过从节点5的最大并发数,则根据用户选择的3、1、2、5进行分布式数据库集群的自动扩展。若从节点5并发数验证不合格,则禁止用户选择该从节点,并向用户发出重新选择的提示信息,并等待用户进行重新选择,对用户新选择的节点进行并发数验证,直到用户的选择符合要求为止。进一步的,根据从节点的状态参数对其进行评分的计算方式如下:

1.mysql并发性能得分:

设fmax为从节点mysql所允许的最大并发数,Xn表示节点n一天内最大并发数的记录值,f为即将加入监测数据的频率:

当T>0时sigmoid(T)=1;

当T<0时sigmoid(T)=-1;

当T<0时,表示若将此类型数据放到该节点上存储时,并发数超过了最大并发,容易导致系统出现错误,在此直接限制不可用,相应的从节点不能被选择,此时,停止对该节点进行打分,即无需进行后续评分,进一步的减少从节点评分的计算量。

2.mysql内存使用情况指标:

设每个节点内存使用情况评估得分An(n=1,2,3……n),每台机器的内存使用情况未X1,X2,X3……Xn,Xmim表示最小的内存使用情况。

由上述公式可将内存状况转化为百分制,其中当前内存占用越小得分越高,当前占用内存越大得分越低。在本发明的铁路地质灾害监测应用中,相应监测工点的传感器类型至少包括:雨量仪、风监测仪器、静力水准仪、深孔测斜仪、震动仪。其中,监测频率较小的为风监传感器2HZ;监测频率较大的为震动传感器500HZ,可以看出震动传感器频率非常大,在相应的数据库子节点如果多个震动传感器并发,那么需要上万的并发数,会远超过系统所能承载的最大并发,因此需要设置一个并发数判断来避免用户选择到错误的从节点。

3.评估当前从节点剩余可用空间情况,单位为%;其中,Xn表示每个节点剩余可用空间,单位%,Xmax表示Xn中最大的一项,将该指标转化为数值在0-100分的内存使用情况得分。,计算方式如下:

4.使用分区情况评估得分:

结合本业务的设计,在数据库按照插入数据时间的不同按照时间对监测数据进行分区。分区数量是影响数据库查询的主要因素,分区越多,速度相对越慢。分区单位为个。

首先需要计算所有节点分区的平均值Mean

第二步计算每个节点分区个数与Mean的差值Mn=Mean-Xn

第三步的到所有Mn中的最大值和最小值Mmax和Mmin

第四步计算分区情况得分将其转化为百分制:

5.当前从节点I/O占用单位%

计算方式同2

6.当前从节点上mysql的cpu使用情况,单位%;计算方式同从节点剩余可用空间情况的计算。

7.整体评价指标:

对于并发数满足要求的从节点,在得到该从节点6个状态参数后,根据不同因素影响程度不同,给不同的评价指标赋予不同的权重,给出最终的评估得分:

Gn=Sigmod[An*F(A)+Bn*F(B)+Cn*F(C)+Dn*F(D)+En*F(E)+Gn*F(G)]

其中An,Bn,Cn,Dn,En,Fn为上述单项评价得分

F(n)(n=A-G)为每项权重,根据不同指标影响程度而定。

其中sigmoid(T)为激活函数,当T>0时sigmoid(T)=T,当T<0时sigmoid (T)=-1;此时,由于评分计算的节点均为并发数满足要求的节点,因此其加权结果为大于的数,即激活函数中T>0。具体的,通过大量试验论证,给出结合本业务实际应用情况需求得到的权重值:F(A)=0.4、F(B)=0.1;F(C) =0.1;F(D)=0.15;F(E)=0.15;F(F)=0.1。

在本实施例中,本系统的配置服务器通过对集群中各从节点性能的状态参数进行实时评价、从而能够根据集群中各节点的分值高低,每进行一次节点扩展,即可为工作人员(用户)提供最优选择,供用户进行参考,辅助用户做出正确的选择、完成高效准确的节点分配,同时提供一种基于并发数的节点验证机制,保证用户不会选择到错误的从节点,并在用户选择了相应的从节点之后,通过基于并发数的节点验证机制对用户选择的节点进行再次确认,保证用户不会选择到错误的从节点,在用户选择满足要求后,通过在配置服务器中预先建立的配置管理算法根据用户的选择以及所述监测数据的类型与频率,控制所述分布式数据库集群进行节点的自动扩展。

实施例2

在本发明的进一步实施例中,我们采用java语言编写所述预先建立的配置管理算法,通过该算法实现中间件服务器配置更新、以及控制中间件服务器在更新后自行重启。在该配置管理程序界面中,可以对中间件服务器进行基本配置信息管理。当得到了用户选择的数据库从节点后,只需要通过配置管理算法对配置服务器中的数据状态表进行更新,在状态表中添加所选的数据库服务器从节点IP地址、端口以及所需加入的监测数据类型。此外,在配置管理算法中,还需要对集群平台的数据库中间件schema.xml配置文件信息和autopartition-long.txt配置文件信息进行管理。

在配置管理程序中,当完成数据库节点服务器信息和设备序号范围分库信息(状态表)设置后,重新生成新的配置文件schema.xml和autopartition-long.txt 文件。然后依次连接每台数据库中间件服务器,将新的配置文件发送到各数据库中间件服务器上替代现有配置文件,并将数据库中间件服务器进行重启。

该配置管理算法运行在一个独立的服务器(配置服务器)中,对数据库集群中间件服务器进行配置文件管理,其配置管理功能是通过对数据库中间件服务器的schema.xml配置文件中添加MySQL数据库扩充节点的IP地址和端口等配置信息,以及对autopartition-long.txt配置文件添加新的设备序号范围来实现集群数据库节点扩展。集群配置管理服务器与中间件服务器的关系如图3所示。

在铁路地质灾害监测分布式数据库集群平台中,可以针对传感器监测设备数量和监测数据增长进行水平扩展。例如,每个数据库服务器节点存储5000个传感器设备产生的数据。当地质灾害监测应用需要增添更多传感器监测设备时,则需要在分布式数据库集群平台中扩展节点数据库服务器。一旦有新增数据库节点服务器加入集群后,则需要对各数据库中间件服务器进行配置文件修改,并重启中间件服务器。

集群配置管理算法对中间件服务器配置修改的步骤如下:

1)由配置服务器读取集群平台各数据库中间件服务器的IP地址和端口信息,并对各中间件服务器进行网络连通性检查。

2)由配置服务器根据用户选择的节点IP地址以及监测数据类型更新分布式数据库集群的状态表,包括:mysql_info表、mysql_info表、group_info表,从配置服务器的配置文件数据库中读取平台数据库中间件的schema.xml和 autopartition-long.txt配置信息。

3)根据更新后的分布式数据库集群的状态表对集群节点信息与配置信息进行维护管理,并将新修改配置信息保存在配置管理服务器中的schema.xml和 autopartition-long.txt文件中。

4)配置服务器通过算法分别连接数据库中间件服务器,对该中间件服务器的schema.xml和autopartition-long.txt文件进行更新。

5)配置服务器通过算法控制重启已完成配置文件更新的中间件服务器。

上述自动配置管理方法实现的总体流程如下图4所示:

第1步:从配置服务器数据库的mysql_info表,获取集群平台的节点数据库服务器信息;从mycat_info表,获取数据库中间件服务器信息;从group_info 表获取监测设备编号信息。各数据库表结构与数据如图5~7所示。

第2步:在获取集群数据库服务器节点信息、数据库中间件服务器信息后,管理配置程序检测与各个数据库中间件服务器之间网络的联通性。

第3步:根据用户节点配置界面选择的新加入的节点的的IP地址、端口号、以及新加入节点数据库服务器的监测工点类型,对mysql_info表进行更新,便于后续构建新的schema.xml文件。根据用户输入扩充后的数据库服务器的顺序确定图4中的type字段的值。当type为1时,表示该数据库服务器为Master;当type为2时,表示该数据库服务器为Slave。图6中的group字段表示该数据库服务器属于集群中哪组节点,每扩充一组数据库服务器节点,该字段对应的值加1。

当扩充一组数据库服务器主/从节点时,向表mysql_info中添加2条数据。添加后的该表的数据如图8所示。

第一步已经从表group_info中获取监测设备序号范围数据以及第三步用户选择了监测工点是桥梁振动监测工点类型还是其他振动监测工点类型。那么在此基础上增加一条监测设备范围数据用于定义扩展数据库节点存储哪些设备数据。以用户选择的是桥梁振动工点类型为例进行说明。扩充数据库节点后,将配置数据保存到group_info表后的数据则如图9所示。

第4步:该步首先生成新的集群平台中间件服务器配置文件,然后再替换掉集群平台中间件服务器中原有的配置文件。配置管理程序根据第一步已经从 mysql_info表中获取所有MySQL数据库服务器以及用户输入的扩充服务器的IP 地址、用户名、密码、对应的集群的组号以及集群的角色(Master或Slave)来构建新的schema.xml文件。然后配置管理应用程序根据第一步已经从group_info 中的设备序号范围以及新生成的设备序号范围来生成新的autopartition-long.txt 文件。

例如,重新定义中间件服务器配置文件schema.xml。该文件针对图8所示集群平台数据库服务器节点,设置schema.xml配置文件,如图10所示。

在schema.xml文件中,涉及table标签、dataNode标签和dataHost标签。table 标签用来定义分布式数据库中的逻辑表,该逻辑表可以是数据切分后,分布在一个或多个分片库中,也可以不做数据切分,只有一个表构成。逻辑表是否分片可以根据table标签中的dataNode来指定。由于本发明针对是分布式数据库集群扩展的自动配置方法,所以这里针对分片表,从图10可以看到table标签的结构。

table标签中的name属性表示逻辑表的名称,dataNode属性表示该逻辑表在哪些数据节点上。由于一个逻辑表可能分布在多个数据节点上,因此,通过以$开始,后面接对应数字的范围来避免该属性的值过长,数字的范围从1开始,最大值取group_info表中所有记录的条数。rule属性表示逻辑表采用的分片规则。

dataNode标签定义了集群中的数据库服务器节点,也就是我们常说的数据分片,一个dataNode标签就是一个独立的数据分片。该标签有3个属性,分别是name、dataHost和database,具体结构如图10中的dataNode标签。dataNode 标签中的name属性用来唯一标识一个dataNode标签,dataHost属性对应dataHost 元素中name属性的值,而database主要指数据库实例上具体的库。由于铁路地质灾害监测应用中数据库服务器上只有一个实例数据库,因此在后续扩展中可以直接在配置管理程序中固定。在该应用中,一个dataHost标签对应一个 dataNode,所以扩充数据库服务器节点后,dataNode与dataHost成对增加。该标签中的name属性均以dn开头,dataHost属性以database开头,然后再在后面添加对应的数字,从1开始到group_info表中所有记录的条数截止。

dataHost元素作为最底层的一个元素存在,通过数据库服务器的IP地址和端口号来对数据库服务器进行连接。该元素直接定义了具体的数据库实例、读写分离和心跳语句。其结构如图10中的dataHost标签。该元素下的balance属性、writeType属性和switchType属性用来设置读写分离以及心跳检测后,MySQL 主从切换的设置。writeHost和readHost表示进行读和写的数据库具体信息,负责写操作和读操作的数据库都可以有多个。由于该分布式数据库集群平台设计方案中每次扩展一组MySQL数据库服务器节点时,都是一样的设计。因此,在构建新的schema.xml配置文件时,dataHost的name属性和dataNode中的dataHost 属性值一样。dataHost标签下writeHost标签以hostM开头,接着再加上与dataHost 标签中name属性字符串一样的数字,构建一个完整的字符串。然后选取与该writeHost对应的组和类型的数据,处理后给url属性、user属性和password属性赋值。dataHost标签下readHost标签以hostS开头,接着再加上与dataHost标签中name属性字符串一样的数字,构建一个完整的字符串。然后按照给 writeHost中给url属性、user属性和password属性赋值的方式给readHost中对应的这三个属性赋值。

在构建完schema.xml配置文件后,接着构建一个新的autopartition-long.txt配置文件。根据从group_info表中获取所有的数据,构建一个新的 autopartition-long.txt配置文件。其结构如图11所示。

图11中的1-5000表示铁路地质灾害监测应用中的设备序号为1到5000的设备产生的数据存储在第一个数据节点中,也就是第一个dataNode。其中0,1, 2,3,4等数字与schema.xml中dataNode从上到下的顺序一一对应。

第4步:根据第一步获取的数据库中间件服务器信息列表,先将第一台数据库中间件服务器的schema.xml和autopartition-long.txt配置文件进行更新,然后再将该服务器重启。其他数据库中间件服务器按照此操作步骤依次进行。

第5步:在配置完所有数据库中间件服务器后,将最后处理的结果返回给用户。

以上所述,仅为本发明具体实施方式的详细说明,而非对本发明的限制。相关技术领域的技术人员在不脱离本发明的原则和范围的情况下,做出的各种替换、变型以及改进均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号