一种数据库横向扩展系统及方法与流程

文档序号:12271655阅读:316来源:国知局
一种数据库横向扩展系统及方法与流程

本发明涉及数据库技术领域,特别是涉及系统在性能容量瓶颈场景下提供不停机高可用的数据库横向扩展系统及方法。



背景技术:

随着企业业务的增长和信息化建设,系统数据呈爆发式增长,特别是对客的OLTP系统交易压力日渐增大,数据库的负载也越来越高,应用数据库面临着容量能力提升的问题和挑战。

传统的垂直扩展(提升硬件设备处理能力)的解决方案存在投入昂贵、无法弹性扩展的局限。通常,为了提升系统应对大业务量、业务发展,尤其是高并发下交易处理能力,各行业的系统设计时大多考虑了分布式数据库的技术,采用分库、分表的策略,将数据从单节点数据库分为多个数据库节点。

针对数据库从单一节点分拆为多节点,衍生出数据路由、水平拆分等需求,通常需要在停机后完成大规模的数据迁移,而在目前的7*24小时高并发的对客交易系统中,停机维护的代价变的越来越大,数据迁移的复杂度越来越高,迁移耗时越来越长。为了实现无缝的持续服务,需要进一步采用数据库快速横向扩展系统和方法,在某个集群数据库性能遇到瓶颈、运行缓慢,或为预期的大并发进行准备时,实现不停机的数据库横向快速扩展,同时,因为集群环境复杂,需要有对应的机制来保证整个集群的多活高可用。



技术实现要素:

本发明目的在于提供了一种数据库快速横向扩展提升系统性能容量的系统及方法,在需要进行数据库水平拆分时,通过本发明涉及的系统和方法,通过监控数据库运行状态,动态扩展数据库,并对路由策略进行实时调整,系统按路由规则对访问进行调整,确保不停机,实时调整数据库,实现对客服务“无缝”衔接,同时,多个数据库节点以并行及互备的方式提供服务,可发挥交易分流、负载均衡的作用,并减少灾难与故障对业务的影响,保证集群多活高可用。

为达上述目的,本发明所提供的数据库横向扩展系统具体包含交易处理装置、数据访问路由装置、数据存储装置、数据方位扩展装置和交易访问装置;所述交易处理装置用于通过缓存路由策略获得路由信息,根据所述路由信息于所述数据存储装置中完成交易数据读写,在交易完成后将交易结果返回给调用方;所述数据访问路由装置与所述交易处理装置相连,用于管理和推送路由策略,提供所述交易处理装置查询路由策略的数据接口,以及将路由信息推送至所述交易处理装置;所述数据存储装置分别与所述交易处理装置和所述数据访问路由装置相连,用于存储及备份所述交易数据以及管理数据库并提供访问接口;所述数据方位扩展装置分别与所述数据访问路由装置和所述数据存储装置相连,用于监控所述数据存储装置的性能容量并处理所述数据存储装置的存储设备申请和数据迁移,以及通知所述数据访问装置进行路由策略信息更新;所述交易访问装置与所述交易处理装置相连,用于监控所述交易处理装置的状态信息,并根据所述状态信息将客户请求分发至可用的交易处理装置。

在上述数据库横向扩展系统中,优选的,所述交易处理装置包含复数个交易处理模块,所述交易处理模块包含参数更新单元、交易处理单元、路由策略缓存单元和交易转发单元;所述参数更新单元用于周期访问所述数据访问路由装置获取路由策略;所述交易处理单元用于处理交易数据并与合作方、主机以及数据库通信交互;所述路由策略缓存单元用于缓存所述路由策略;所述交易转发单元用于根据交易访问装置的控制指令,将接受到的交易请求转发至其他交易处理模块。

在上述数据库横向扩展系统中,优选的,所述数据访问路由装置包含路由更新单元、路由读取单元和路由推送单元;所述路由更新单元用于根据外部指令更新所述数据访问路由装置的路由策略信息;所述路由读取单元用于提供路由策略访问接口;所述路由推送单元用于在路由策略信息发生变化时,将当前的路由策略信息推送至交易处理装置。

在上述数据库横向扩展系统中,优选的,所述路由策略包含:机构识别号、分组识别号、路由种类、路由关键字、路由表达式、路由说明、数据库连接池引用ID、路由名称和路由状态。

在上述数据库横向扩展系统中,优选的,所述数据存储装置包含监控采集单元、数据访问单元和存储新增单元;所述监控采集单元用于采集数据存储装置中所有存储设备的性能监控指标数据;所述数据访问单元用于管理采集数据存储装置中所有存储设备的数据库连接池并提供数据访问接口;所述存储新增单元用于将新增的存储设备添加入所述数据存储装置,并交由数据访问单元提供数据访问接口。

在上述数据库横向扩展系统中,优选的,所述数据访问装置包含:动态监测单元、数据库申请单元、路由策略通知单元和数据迁移单元;所述动态监测单元用于周期监测所述性能指标数据,将所述指标数据与预定阈值进行比较并输出比较结果;所述数据库申请单元用于根据所述比较结果向数据库服务器云获取全新的数据库,并将其提供给数据存储装置;所述路由策略通知单元用于通知所述数据访问路由装置更新路由策略;所述数据迁移单元用于对数据库的数据进行数据迁移。

在上述数据库横向扩展系统中,优选的,所述交易访问装置包含心跳监测单元和交易分发单元;所述心跳监测单元用于周期监测所述交易处理模块的运行状态;所述交易分发单元用于将接收到的交易请求分发至交易处理装置中的各个交易处理模块进行处理。

本发明还提供一种数据库横向扩展方法,所述方法包含:监控交易处理装置的状态信息,并根据所述状态信息将客户请求分发至可用的交易处理装置;所述交易处理装置根据所述客户请求获取路由策略,缓存所述路由策略获得路由信息,根据所述路由信息于所述数据存储装置中完成交易数据读写,在交易完成后将交易结果返回给调用方;通过数据访问路由装置管理和推送数据存储装置中存储的路由策略,提供所述交易处理装置查询路由策略的数据接口,以及将路由信息推送至所述交易处理装置;所述数据存储装置存储及备份所述交易数据以及管理数据库并提供访问接口;数据方位扩展装置监控所述数据存储装置的性能容量并处理所述数据存储装置的存储设备申请和数据迁移,以及通知所述数据访问装置进行路由策略信息更新。

在上述数据库横向扩展方法中,优选的,所述数据方位扩展装置监控所述数据存储装置的性能容量并处理所述数据存储装置的存储设备申请还包含:采集所述数据存储装置的性能监控指标数据并保存;监测所述性能监控指标数据,将所述指标数据与预定阈值进行比较并输出比较结果;根据所述比较结果向数据库服务器云获取全新的数据库,并补入至数据存储装置;所述数据存储装置获得所述数据库的连接池,并根据所述连接池提供所述数据库的数据访问接口。

在上述数据库横向扩展方法中,优选的,所述数据存储装置存储及备份所述交易数据以及管理数据库并提供访问接口还包含:当所述数据存储装置补入新的数据库时,更新所述路由策略。

本发明提供的数据库横向扩展的系统和方法,减少了数据库横向扩展所需的服务停机、数据迁移、数据清理、网络调整等工作,主要具有如下效果与优点:

(一)支持数据库快速横向扩展

数据库横向扩展需进行大量的准备工作,本方法可不停机自动对生产数据库进行快速横向扩展,并支持按不同类型(如客户地区、合作方代码等)对交易进行路由,同时,装置无单点,多个交易集群间互不影响,降低集群故障时对业务的影响。

(二)集群高可用,支持集群及数据库快速切换,处理效率高

通过本发明的交易分发、交易路由、数据同步、数据扩展等方法,可以通过调整交易分发、交易路由,将交易分发到无故障的服务节点,大大提高了处理效率,可以确保业务在故障或灾难发生后在秒级完成数据库切换。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中:

图1:数据库横向扩展系统的系统总体结构;

图2:交易处理装置1内部结构图示意图;

图3:数据访问路由装置2内部结构图示意图;

图4:数据存储装置3内部结构图示意图;

图5:数据访问扩展装置4内部结构图示意图;

图6:交易访问装置5内部结构图示意图;

图7:数据存储监控申请的流程;

图8:路由变更的流程;

图9:路由缓存的流程;

图10:交易处理的流程。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。

本发明提供了一种数据库横向扩展的系统和方法,客户从本方服务渠道或合作方服务渠道发起交易请求时,交易请求首先访问交易访问装置集群,交易访问装置根据数据访问路由设置的分布策略,分发到对应的数据存储装置进行处理,系统处理后将交易数据保存在对应的数据存储装置中。同时,数据存储装置的数据相互之间会进行异步复制。下面将对照附图,对本发明的系统和方法进行详细说明。

请参考图1所示,本发明所提供的数据库横向扩展系统具体包含交易处理装置1、数据访问路由装置2、数据存储装置3、数据方位扩展装置4和交易访问装置5;所述交易处理装置1用于通过缓存路由策略获得路由信息,根据所述路由信息于所述数据存储装置3中完成交易数据读写,在交易完成后将交易结果返回给调用方;所述数据访问路由装置2与所述交易处理装置1相连,用于管理和推送路由策略,提供所述交易处理装置1查询路由策略的数据接口,以及将路由信息推送至所述交易处理装置1;所述数据存储装置3分别与所述交易处理装置1和所述数据访问路由装置2相连,用于存储及备份所述交易数据以及管理数据库并提供访问接口;所述数据方位扩展装置4分别与所述数据访问路由装置2和所述数据存储装置3相连,用于监控所述数据存储装置3的性能容量并处理所述数据存储装置3的存储设备申请和数据迁移,以及通知所述数据访问装置2进行路由策略信息更新;所述交易访问装置2与所述交易处理装置1相连,用于监控所述交易处理装置的状态信息,并根据所述状态信息将客户请求分发至可用的交易处理装置1。以此通过这五个装置的相互协作,实现不停机的数据库横向快速扩展,并保证整个系统始终高可用,数据存储装置3与数据访问扩展装置4相互协作,完成数据库性能监控、数据库自动横向扩展并保证数据库的高可用。数据访问扩展装置4与数据访问路由装置2相互协作,完成数据的迁移、路由策略的变更。交易处理装置1与数据访问路由装置2相互协作,保证交易可以快速准确的访问数据存储装置3完成交易处理。交易访问装置5和交易处理装置1相互协助,保证了整个系统的负载均衡及高可用。

在上述实施例中,交易处理装置1主要用于实现交易处理,根据本地缓存的路由策略,与数据库完成交互,并将处理结果返回给调用方,交易处理装置1为集群部署,任意节点的交易处理装置1发生故障,则关闭该交易处理装置1,本方服务渠道、合作方服务渠道提交的交易请求由其他交易处理装置1节点受理,不会影响系统整体可用性。交易处理装置1会缓存数据路由策略,以保证交易处理效率,同时,也会通过与数据访问路由装置2的交互,保证数据路由策略的时效性。数据访问路由装置2:用于实现数据路由策略的管理和推送。数据访问路由装置2采用集群部署,数据路由策略管理和推送的可靠性。在数据路由策略发生变更时,本装置会将路由信息推送至交易处理装置1;同时,本装置也提供接口供交易处理装置1实时查询数据路由策略。数据存储装置3:用于实现存储设备的管理并提供数据访问服务,同时,定时采集所有存储设备的性能监控指标数据供数据访问扩展装置4使用。在数据存储装置3中,同一份数据,会在备份库中进行实时备份,保证数据无单点,数据库在线备份技术,使用行内数据库实时备份技术实现,本发明不进行详细描述。在数据库横向扩展时,本装置负责完成数据库的新增操作,并统一管理新增数据库的连接池,对外提供数据访问服务。数据访问扩展装置4:用于实现对数据存储装置3的性能容量监控、存储设备申请、数据迁移以及通知数据访问路由装置2中的路由策略信息更新。交易访问装置5:用于实现客户请求的受理分发及交易处理装置1的可用性监测,保证整个系统的高可用。

请参考图2所示,在本发明一优选的实施例中,所述交易处理装置1包含复数个交易处理模块,所述交易处理模块包含参数更新单元11、交易处理单元12、路由策略缓存单元13和交易转发单元14;所述参数更新单元11用于周期访问所述数据访问路由装置2获取路由策略;所述交易处理单元12用于处理交易数据并与合作方、主机以及数据库通信交互,是具体业务的处理单元;所述路由策略缓存单元13用于缓存所述路由策略,提高路由策略查询的效率;所述交易转发单元14用于根据交易访问装置5的控制指令,将接受到的交易请求转发至其他交易处理模块。

请参考图3所示,在本发明一优选的实施例中,所述数据访问路由装置2包含路由更新单元21、路由读取单元22和路由推送单元23;所述路由更新单元21用于根据外部指令更新所述数据访问路由装置2的路由策略信息;所述路由读取单元22用于提供路由策略访问接口;所述路由推送单元23用于在路由策略信息发生变化时,将当前的路由策略信息推送至交易处理装置1。其中,所述路由策略包含:机构识别号、分组识别号、路由种类、路由关键字、路由表达式、路由说明、数据库连接池引用ID、路由名称和路由状态。

请参考图4所示,在本发明一优选的实施例中,所述数据存储装置3包含监控采集单元31、数据访问单元32和存储新增单元33;所述监控采集单元31用于采集数据存储装置3中所有存储设备的性能监控指标数据;所述数据访问单元32用于管理采集数据存储装置3中所有存储设备的数据库连接池并提供数据访问接口;所述存储新增单元33用于将新增的存储设备添加入所述数据存储装置3,并交由数据访问单元提供数据访问接口。具体的,监控采集单元31:用于采集数据存储装置3内部所有存储设备的性能监控指标数据,性能监控指标包括当前的磁盘存储容量及使用百分比、所有前台session花费在database调用上的总和时间(DB TIME)、前台session花费的CPU时间片(DB CPU)、数据库实例每秒物理读的IOPS(physical read total IO requests)、数据库实例每秒物理写的IOPS(physical write total IO requests)、log file sync等待事件的平均等待时间、db file sequential read等待事件的平均等待时间、gc buffer busy等待事件的平均等待时间等。数据访问单元32:用于统一管理数据库连接池并对外提供数据访问服务。存储新增单元33:用于将新增的存储设备加入装置,并交由数据访问单元32提供对外服务。

请参考图5所示,在本发明一优选的实施例中,所述数据访问装置4包含:动态监测单元41、数据库申请单元42、路由策略通知单元43和数据迁移单元44;所述动态监测单元41用于周期监测所述性能指标数据,将所述指标数据与预定阈值进行比较并输出比较结果;所述数据库申请单元42用于根据所述比较结果向数据库服务器云获取全新的数据库,并将其提供给数据存储装置;所述路由策略通知单元43用于通知所述数据访问路由装置更新路由策略;所述数据迁移单元44用于对数据库的数据进行数据迁移。其中,所述动态监测单元41具体用于周期去监测监控采集单元31收集的数据存储装置3的各类性能指标,监控采集单元31收集的性能指标都经过压测评估出一个经验值,作为需要扩容时的阈值,当数据存储装置3内部某一台存储设备性能某几个指标超过预设的阈值时,返回当前该存储设备需要进行扩展。数据库申请单元42则主要用于向数据库服务器云获取全新的数据库,并将其提供给数据存储装置3。所述路由策略通知单元43具体用于通知数据访问路由装置2更新路由策略。数据迁移单元44则用于对数据库的数据进行数据迁移,数据迁移包括数据复制、数据核对、数据存档等。

请参考图6所示,在本发明一优选的实施例中,所述交易访问装置5包含心跳监测单元51和交易分发单元52;所述心跳监测单元51用于周期监测所述交易处理模块的运行状态;所述交易分发单元52用于将接收到的交易请求分发至交易处理装置中的各个交易处理模块进行处理。

本发明还提供一种数据库横向扩展方法,所述方法包含:监控交易处理装置的状态信息,并根据所述状态信息将客户请求分发至可用的交易处理装置;所述交易处理装置根据所述客户请求获取路由策略,缓存所述路由策略获得路由信息,根据所述路由信息于所述数据存储装置中完成交易数据读写,在交易完成后将交易结果返回给调用方;通过数据访问路由装置管理和推送数据存储装置中存储的路由策略,提供所述交易处理装置查询路由策略的数据接口,以及将路由信息推送至所述交易处理装置;所述数据存储装置存储及备份所述交易数据以及管理数据库并提供访问接口;数据方位扩展装置监控所述数据存储装置的性能容量并处理所述数据存储装置的存储设备申请和数据迁移,以及通知所述数据访问装置进行路由策略信息更新。

在上述实施例中,所述数据方位扩展装置监控所述数据存储装置的性能容量并处理所述数据存储装置的存储设备申请还包含:采集所述数据存储装置的性能监控指标数据并保存;监测所述性能监控指标数据,将所述指标数据与预定阈值进行比较并输出比较结果;根据所述比较结果向数据库服务器云获取全新的数据库,并补入至数据存储装置;所述数据存储装置获得所述数据库的连接池,并根据所述连接池提供所述数据库的数据访问接口。

在上述实施例中,所述数据存储装置存储及备份所述交易数据以及管理数据库并提供访问接口还包含:当所述数据存储装置补入新的数据库时,更新所述路由策略。

为更清楚的解释上述数据库横向扩展方法,以下结合图7至图10对上述方法做进一步说明:

本发明通过交易处理装置1、数据访问路由装置2、数据存储装置3、数据访问扩展装置4、交易访问装置5之间的相互协作,实现不停机的数据库横向快速扩展,并保证整个系统始终高可用;本发明提供的数据库快速扩展的方法,包括以下步骤:

步骤1、定时监测数据存储的性能,在性能到达瓶颈或者数据库出现故障时申请数据存储设备。

步骤2、变更数据路由策略,在线完成数据的迁移。

步骤3、在交易处理装置本地缓存数据路由策略,提高交易处理效率。

步骤4、在接受到请求后,根据交易处理节点的当前的状态,对请求进行处理或者转发,保证交易处理集群多活高可用。

具体请参见图7所示,本发明提供的数据存储监控申请的流程相关步骤如下:

步骤S101:监控收集单元31在系统启动后,定时对数据存储装置3中的所有存储设备进行性能数据的采集,并将采集结果保存下来。动态监测单元41定时监测这些采集结果,若发现某台数据存储的性能指标到达预设的警戒线或发现某个数据库存在异常不能提供服务时,则调起后续的步骤进行处理。

步骤S102:在数据存储需要扩展时,数据库申请单元42会从数据库服务器云上获取2台全新的数据库(一台提供对外服务,一台作为提供对外服务数据库的备份服务器)。

步骤S103:在某个数据库存在长时间异常不能提供服务时,数据库申请单元42会将该库的备份库启用,同时,从数据库服务器云上获取1台全新的数据库,作为该库的备份库。(因数据库长时间异常不能再提供服务通常是由于发生硬件问题,因此异常数据库的回收,不由本发明系统自动处理,而是由系统外处理后,将其新增至数据库服务器云中,供后续扩展使用,异常数据库回收不涉及路由变更。)

步骤S104:存储新增单元33将新的数据库纳入到数据存储装置3中,通过统一的连接池管理,对外提供服务。每一个数据库有一个唯一的数据库连接池引用ID,交易处理单元12通过数据库连接池引用ID来和存储新增单元33交互,获取可用的数据库连接。本步骤完成后,会调起路由变更流程,对数据路由进行变更。

具体请参见图8所示,本发明提供的路由变更的流程具体步骤如下:

步骤S201:路由策略通知单元43,在新的数据库纳入到数据存储装置3完成后,调起路由更新单元21进行路由策略更新。路由策略有3种状态,分别为生效中、迁移中以及作废。生效中及迁移中的策略仅允许存在一条,且生效中的路由策略优先级高于迁移中的路由策略。在调整路由策略时,先将原有的生效中的策略调整为迁移中,并将本次新增的路由策略设置为生效中。当所有需要迁移的数据根据新增的生效中的路由策略迁移完成后,将原有的策略由迁移中调整为作废。

步骤S202:路由推送单元23负责将生效中及迁移中的所有策略,推送给所有的交易处理装置1,由路由策略缓存单元将其缓存在交易处理装置本地的服务器上。

步骤S203:数据迁移单元44根据迁移中的路由策略和生效中的路由策略的差异,将需要迁移的数据由原有的库迁移至新的数据库,同时对数据进行复制、核对及存档。在迁移完成后,重复步骤S201和步骤S202,将迁移中的策略更新为作废。

具体请参见图9所示,本发明提供的路由缓存的流程具体步骤如下:

步骤S301:参数更新单元11会定时去访问路由读取单元22,获取最新的数据路由策略。数据访问路由装置2采用集群部署,如一定周期内参数更新单元11无法接受到路由读取单元22返回信息,则系统自动读取数据访问路由装置2集群中的其他节点,来保证可以获取到最新的数据路由策略。

步骤S302:路由策略缓存单元13会将获取到的路由策略缓存在本地,供交易处理单元使用。

具体请参见图10所示,本发明提供的交易处理的流程具体步骤如下:

步骤S401:交易分发单元52负责将交易请求分发至所有可用的交易处理装置1进行处理,交易分发单元52保证了所有交易处理装置的负载均衡。

步骤S402:交易处理单元12会访问本地的路由策略缓存单元13获取路由信息,若路由策略缓存单元13中无数据,则调用路由读取单元22获取最新的路由信息,并调用路由策略缓存单元13将其缓存在本地。

步骤S403:交易处理单元12负责业务逻辑的处理,实现与合作方、主机以及数据库的交互,是具体业务的处理单元。交易处理单元12支持多路由处理,即当步骤S402中返回多个路由规则时,由优先级高至低逐步对路由规则进行尝试,通过数据访问单元32实现数据的访问及变更操作。

步骤S404:交易转发单元14在交易处理装置1集群某个装置达到性能上限或出现故障时,会将该交易处理装置1接受到的请求转发至集群中其他的交易处理装置1节点,确保交易处理装置1集群多活高可用。

本发明提供的数据库横向扩展的系统和方法,减少了数据库横向扩展所需的服务停机、数据迁移、数据清理、网络调整等工作,主要具有如下效果与优点:

(一)支持数据库快速横向扩展

数据库横向扩展需进行大量的准备工作,本方法可不停机自动对生产数据库进行监控和快速横向扩展,并支持按不同类型(如客户地区、合作方代码等)对交易进行路由,同时,装置无单点,多个交易集群间互不影响,降低集群故障时对业务的影响。

(二)集群高可用,支持集群及数据库快速切换,处理效率高

通过本发明的交易分发、交易路由、数据同步、数据扩展等方法,可以通过调整交易分发、交易路由,将交易分发到无故障的服务节点,大大提高了处理效率,可以确保业务在故障或灾难发生后在秒级完成数据库切换。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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