本申请涉及数据库系统,尤其涉及一种数据库路由方法、装置及数据库系统。
背景技术:
关系型数据库,是指采用了关系模型来组织数据的数据库。关系模型是在1970年由IBM的研究员E.F.Codd博士首先提出,在之后的几十年中,关系模型的概念得到了充分的发展并逐渐成为数据库架构的主流模型。简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织。当前主流的关系型数据库有Oracle、DB2、MySQL、浪潮K-DB等。
随着业务的发展以及数据量的增加,当一个应用系统的用户量和访问量与日俱增的时候,传统的关系型数据库却没有办法像页面服务器(Web Server)那样简单地通过添加更多的硬件和服务节点来扩展性能和负载能力。关系型数据库自身不支持分布式扩展,而单台数据库节点的最大处理能力有限,当关系数据库达到一定规模时,非常容易发生死锁等并发问题,导致其读写性能下降非常严重。
技术实现要素:
有鉴于此,实有必要提供一种数据库的路由方法、装置及数据库,使得关系型数据库能够支持分布式扩展,提升数据库的性能。
一方面,提供一种数据库的路由方法,应用在数据库中,该数据库包括多个数据库节点,该方法引入数据库路由装置提供数据库的路由调度,包括:数据库路由装置接收应用发送的数据路由信息查询请求,所述数据路由信息查询请求包含数据类型;所述数据库路由装置根据所述数据类型,确定所述数据类型对应的数据库节点;所述数据库路由装置向所述应用发送数据路由信息查询响应,所述数据路由信息查询响应包含所述数据库节点的标识信息。该数据库的路由方法通过引入数据库路由装置进行数据库的路由调度,使得关系型数据库可以进行分布式扩展,从而在数据大量爆发的情况,保证了数据库的读写性能。
一种可选的实施方式中,所述路由信息查询请求还包括:数据操作类型,所述路由方法还包括:确定所述数据操作类型,用以确定调用哪个接口进行数据查询。
一种可选的实施方式中,若确定所述数据操作类型为数据新增操作,则获取数据库分库策略,根据所述数据类型以及所述数据库分库策略,确定所述数据类型对应的数据库节点。可选的,若根据数据库分库策略存在多个可选的数据库,可进一步根据数据库负载情况选择一个负载较轻的数据库。
一种可选的实施方式中,若确定所述数据操作类型为数据删除或者修改操作,则读取数据库路由信息,根据所述数据类型以及所述数据库路由信息,确定所述数据类型对应的数据库节点。可选的,若路由信息查询请求包含路由字段值,则可根据数据类型、路由字段值以及数据库路由信息确定该数据对应的数据库节点。
一种可选的实施方式中,所述数据库分库策略包括数据类型和数据库节点之间的映射关系,可选的数据库分库策略可以通过二维图表的形式描述。
一种可选的实施方式中,所述数据库路由信息包括数据类型、路由字段值和数据库节点之间的映射关系,可选的数据库路由信息可以通过二维图表的形式描述。可选的,各个数据库的路由信息可以分别以独立的二维图表描述,方便进行数据库路由信息的更新校正。可选的,多个数据库的路由信息也可在一个二维图表中合并描述,降低管理的复杂度。
一种可选的实施方式中,所述路由方法还包括:获取数据库节点信息和数据库路由信息数据结构,根据所述数据库节点信息从应用系统各个数据库节点读取数据,按照所述数据库路由信息数据结构加载所述数据库路由信息,将所述数据库路由信息存储到本地内存中,其中所述数据库节点信息包括数据类型、数据库节点、数据库表和路由字段之间的映射关系。可选的数据库节点信息可通过二维图表的形式描述。
一种可选的实施方式中,所述路由方法还包括:
定时从应用系统各个数据库节点加载数据库路由信息,将本地存储的数据库路由信息与新加载的数据库路由信息进行校对,更新本地存储的数据库路由信息。保证数据库路由信息的准确性。
第二方面,提供一种数据库路由装置,该数据库路由装置包括:路由模块,用于接收应用发送的数据路由信息查询请求,所述数据路由信息查询请求包含数据类型;根据所述数据类型,确定所述数据类型对应的数据库节点;向所述应用发送数据路由信息查询响应,所述数据路由信息查询响应包含所述数据库节点的标识信息。本数据库路由路由可适用于视频、电信、IT、互联网等领域的业务应用系统,使得本身不支持分布式的业务数据库可以进行分布式部署,提升了数据库整体性能,且不需对业务系统原有业务数据结构进行任何变化。
一种可选的实施方式中,所述路由信息查询请求还包括:数据操作类型,所述路由模块还用于:确定所述数据操作类型。
一种可选的实施方式中,该数据库路由装置还包括:存储模块,用于存储数据库分库策略,所述路由模块具体用于若确定所述数据操作类型为数据新增操作,则从存储模块获取数据库分库策略,根据所述数据类型以及所述数据库分库策略,确定所述数据类型对应的数据库节点。
一种可选的实施方式中,所述存储模块,还用于存储数据库路由信息,所述路由模块还具体用于:若确定所述数据操作类型为数据删除或者修改操作,则读取数据库路由信息,根据所述数据类型以及所述数据库路由信息,确定所述数据类型对应的数据库节点。
一种可选的实施方式中,该数据库路由装置还包括:策略配置模块,用于配置数据库分库策略,所述数据库分库策略包括数据类型和数据库节点之间的映射关系。
一种可选的实施方式中,所述策略配置模块,还用于配置数据库路由信息数据结构,所述数据库路由信息数据结构包括:数据类型、路由字段和数据库节点。
一种可选的实施方式中,所述路由模块还用于:从策略配置模块获取数据库节点信息和数据库路由信息数据结构,根据所述数据库节点信息从应用系统各个数据库节点读取数据,按照所述数据库路由信息数据结构加载所述数据库路由信息,将所述数据库路由信息存储到存储模块中,其中所述数据库节点信息包括数据类型、数据库节点、数据库表和路由字段之间的映射关系。
一种可选的实施方式中,所述路由模块还用于:定时从应用系统各个数据库节点加载数据库路由信息,将存储模块存储的数据库路由信息与新加载的数据库路由信息进行校对,更存储模块存储的数据库路由信息。
第三方面,提供一种数据库路由服务器,包括:包括存储器,用于存储计算机可执行程序代码,以及处理器用于执行存储器中可执行的程序代码;
其中所述程序代码包括指令,当所述处理器执行所述指令时,所述指令使所述数据库路由服务器执行以下操作:接收应用发送的数据路由信息查询请求,所述数据路由信息查询请求包含数据类型;根据所述数据类型,确定所述数据类型对应的数据库节点;向所述应用发送数据路由信息查询响应,所述数据路由信息查询响应包含所述数据库节点的标识信息。
第四方面,提供一种计算机程序产品,包括可执行程序代码,其中所述程序代码包括指令,当所述处理器执行所述指令时,所述指令使所述数据库路由服务器执行以下操作:接收应用发送的数据路由信息查询请求,所述数据路由信息查询请求包含数据类型;根据所述数据类型,确定所述数据类型对应的数据库节点;向所述应用发送数据路由信息查询响应,所述数据路由信息查询响应包含所述数据库节点的标识信息。
第五方面,本申请实施例提供了一种计算机存储介质,用于储存为上述数据库路由装置所用的计算机软件指令,其包含用于执行上述方面所设计的程序。
第六方面,提供一种数据库系统,包括如上所述数据库路由装置用于提供数据库路由和调度,数据库,包括多个数据库,用于存储业务数据;应用系统,用于从所述数据库读取和调用业务数据向用户提供业务。可选的,所述数据库是关系型数据库。
本申请实施例的数据库的路由方法通过引入数据库路由装置进行数据库的路由调度,使得关系型数据库可以进行分布式扩展,从而在数据大量增长的情况,保证了数据库的读写性能。
附图说明
图1是本申请一实施例的数据库系统架构图;
图2是本申请一实施例中数据库节点信息示意图;
图3是本申请一实施例中分库策略信息示意图;
图4是本申请一实施例中数据库路由信息数据结构示意图;
图5是本申请一实施例的数据库路由服务器结构示意图;
图6是本申请一实施例中数据库路由信息加载流程示意图;
图7是本申请一实施例中数据新增场景的流程示意图;
图8是本申请一实施例中数据删除/修改场景流程示意图;
图9是本申请一实施例中数据查询场景流程示意图;
图10是本申请一实施例中路由信息自动校正流程示意图;
图11A本申请一实施例中UGC视频系统数据库节点信息示意图;
图11B本申请一实施例中UGC视频系统分库策略信息示意图;
图11C本申请一实施例中UGC视频系统数据库路由信息数据结构示意图;
图12A本申请一实施例中支付账务系统数据库节点信息示意图;
图12B本申请一实施例中支付账务系统分库策略信息示意图;
图12C本申请一实施例中支付账务系统数据库路由信息数据结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
图1是本申请一实施例的数据库系统架构图,如图1所示,该数据库系统包括:
应用系统101、数据库102以及数据库路由装置103,应用系统101包含多个不同的业务应用(应用1-应用N),可以从数据库102读取和调用业务数据用以提供不同的业务,数据库102包含多个数据库节点(数据库1-数据库N)用以存储业务数据供应用系统101使用,数据库的各个节点存储的业务数据可以是不同的。数据库路由装置103向应用系统101提供数据路由查询功能。数据库路由装置103包括:
策略配置模块1031、路由模块1032、存储模块1033。
策略配置模块1031用于配置数据库节点的节点信息,分库策略信息和数据库路由信息数据结构等。其中数据库节点信息如图2所述,该图仅为举例说明,在实际使用中,数据库节点信息具体内容和表现形式可以根据实际使用场景进行调整。如图2所示,数据库节点信息包括:数据类型、描述、数据库类型、数据库节点、数据库表、路由字段之间的映射关系。分库策略信息如图3所示,该图仅为举例说明,在实际使用中,分库策略信息具体内容和表现形式可以根据实际使用场景进行调整,如图3所示,分库策略信息包括:数据类型、策略描述、开始时间、结束时间、选库策略之间的映射关系。数据库路由信息数据结构如图4所示,该图仅为举例说明,在实际使用中,数据库路由信息数据结构具体内容和表现形式可以根据实际使用场景进行调整。数据库路由信息数据结构如图4所示,包括数据类型、路由字段值以及数据库节点。
路由模块1032为应用系统访问数据库节点提供数据路由查询服务,还用于从数据库加载数据库路由信息。具体的,路由模块1032从策略配置模块1031获取数据库节点信息和数据库路由信息数据结构,根据所述数据库节点信息从应用系统各个数据库节点读取数据,按照所述数据库路由信息数据结构加载数据库路由信息,将数据库路由信息存储到存储模块1033中,数据库路由信息包括数据类型、路由字段值和数据库节点之间的映射关系。
需要注意的是,本申请方案主要是为了解决关系型数据库不能支持分布式扩展问题,但是本申请方案也可以适用于其他类型的数据库,比如非关系型数据库。本申请实施例对数据库类型不做限定。
在实际应用场景中,数据库路由装置可以由服务器提供,比如数据库路由服务器,下面结合附图对本申请实施例中的数据库路由服务器作进一步介绍,图5为本申请实施例的数据库路由服务器的结构示意图,如图5所示,数据库路由服务器500可包括:
包括至少一个处理器501,通信总线502,存储器503以及至少一个通信接口504。
处理器501可以是一个通用中央处理器(CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本申请方案程序执行的集成电路。
通信总线502可包括一通路,在上述组件之间传送信息。所述通信接口504,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(RAN),无线局域网(Wireless Local Area Networks,WLAN)等。
存储器502可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。
其中,所述存储器503用于存储执行本申请方案的应用程序代码,并由处理器501来控制执行。所述处理器501用于执行所述存储器503中存储的应用程序代码。
在具体实现中,作为一种实施例,处理器501可以包括一个或多个CPU,例如图5中的CPU0和CPU1。
在具体实现中,作为一种实施例,数据库路由服务器500可以包括多个处理器,例如图5中的处理器501和处理器508。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,数据库路由服务器500还可以包括输出设备505和输入设备506。输出设备505和处理器501通信,可以以多种方式来显示信息。例如,输出设备505可以是液晶显示器(liquid crystal display,LCD),发光二级管(light emitting diode,LED)显示设备,阴极射线管(cathode ray tube,CRT)显示设备,或投影仪(projector)等。输入设备506和处理器501通信,可以以多种方式接受用户的输入。例如,输入设备506可以是鼠标、键盘、触摸屏设备或传感设备等。
上述的数据库路由服务器500可以是一个通用计算机设备或者是一个专用计算机设备。在具体实现中,数据库路由服务器500可以是台式机、便携式电脑、网络服务器、掌上电脑(Personal Digital Assistant,PDA)、移动手机、平板电脑、无线终端设备、通信设备、嵌入式设备或有图5中类似结构的设备。本申请实施例不限定数据库路由服务器的类型。
在具体的使用场景中,数据库路由服务器500的存储器506可以存储如图2-图4所示的数据库节点信息,分库策略信息和数据库路由信息数据结构、数据库路由信息等,还可以存储可执行程序,该可执行程序可以包含如图1所示数据库路由装置的各个模块,处理器在执行本申请方案时,通过调用和执行数据库路由装置的各个模块来实现如下所述的数据库路由查询方法。
下面结合实际使用场景对本申请实施例做详细介绍,如图6所示,为数据库路由信息加载流程,包括如下步骤:
601、路由模块从策略配置模块读取配置信息,包括数据库节点信息和数据库路由信息数据结构。
602、路由模块根据数据库节点信息循环从各个数据库节点加载所有数据库路由信息。
具体的,路由模块根据数据库节点信息和数据库路由信息数据结构从各个数据库逐一读取数据库表中每条数据的路由字段值,将获取的路由字段值添加在数据库路由信息数据结构中,得到数据库路由信息。可选的,数据库路由信息可以由二维图表的方式进行描述,各个数据库的路由信息可以分别以独立的二维图表描述,方便进行数据库路由信息的更新校正。当然多个数据库的路由信息也可在一个二维图表中合并描述,降低管理的复杂度。
603、将数据库路由信息发送给存储模块进行存储。
在本实施例执行前,运营人员还需要根据各个数据库节点的数据情况在策略配置模块上配置数据库节点信息和数据库路由信息数据结构。具体的的配置操作可以直接修改策略配置模块的配置信息,或者在策略配置模块提供的用户操作界面上进行操作。
图7为本申请实施例的数据新增场景的流程示意图,如图7所示,包括如下步骤:
701、路由模块接收应用发送的路由信息查询请求,该路由信息查询请求中包括数据类型、数据新增操作。
具体的,当应用要新增数据时,需要调用路由模块提供的新增数据存储节点申请接口,该接口数据接口定义如下:
请求:数据类型
响应:数据库节点标识
702、路由模块从存储模块读取数据分库策略。
703、路由模块根据分库策略和数据类型选择一个数据库节点用于存储新增数据。
具体的,路由模块还可根据系统当前时间确定使用的分库策略,然后根据分库策略和数据类型选择一个数据库节点,进一步的,当存在多个满足分库策略的数据库时,还可以根据数据库存储情况,负载情况等,选择负载较轻的数据库节点作为新增数据的存储节点。
704、路由模块将选择的数据库节点标识反馈给所述应用。
705、应用根据数据库节点标识到对应的数据库节点存储新增数据。
706、应用将新增数据的路由信息发送给路由模块。
具体的,如果数据新增成功,应用调用路由信息新增数据同步接口将新增数据的路由信息同步给路由模块,该路由信息同步接口结构定义如下:
请求:数据类型、路由字段值、数据库节点标识
响应:成功/失败
707、路由模块更新存储模块存储的数据库路由信息。
路由模块将新增数据的路由信息添加到存储模块存储的数据库路由信息中。
图8为本实施例的数据删除/修改场景流程示意图,如图8所示,包括如下步骤:
801、路由模块接收应用发送的路由信息查询请求,该路由信息查询请求中包括数据类型、路由字段值、数据删除或者修改操作。
具体的,当应用要对数据进行删除或者修改操作时,需要调用路由模块提供的路由信息查询接口,该接口数据接口定义如下:
请求:数据类型、路由字段值
响应:数据库节点标识
802、路由模块从存储模块读取数据库路由信息。
803、路由模块根据路由字段值、数据类型与数据库路由信息确定该数据存储的数据库节点。
804、路由模块将确定的数据库节点标识反馈给所述应用。
805、应用根据数据库节点标识到对应的数据库节点修改或者删除数据。
806、应用将修改或者删除的数据的路由信息发送给路由模块。
具体的,如果数据修改或者删除成功,应用调用删除数据同步接口将删除的数据的路由信息同步给路由模块。
该删除数据同步接口定义如下:
请求:数据类型、路由字段值
响应:成功/失败
如果修改数据成功,应用调用修改数据同步接口将修改的数据的路由信息同步给路由模块。
该修改数据同步接口定义如下:
请求:数据类型、路由字段值、原数据库节点标识、新的数据库节点
响应:成功/失败
807、路由模块更新存储模块存储的数据库路由信息。
若删除数据成功路由模块根据数据类型、路由字段值删除该数据的路由信息。
若修改数据成功,路由模块根据数据类型、路由字段值、原数据库节点标识、新的数据库节点标识将该数据的路由信息进行修改更新。
图9为本申请业务数据查询场景示意流程图,如图9所示包括以下步骤:
901、路由模块接收应用发送的路由信息查询请求,该路由信息查询请求中包括数据类型、路由字段值、查询操作。
具体的,当应用要对数据进行查询操作时,需要调用路由模块提供的路由信息查询接口,该接口数据接口定义如下:
请求:数据类型、路由字段值
响应:数据库节点标识
902、路由模块从存储模块读取数据库路由信息。
903、路由模块根据路由字段值、数据类型与数据库路由信息确定该数据存储的数据库节点。
904、路由模块将确定的数据库节点标识反馈给所述应用。
905、应用根据数据库节点标识到对应的数据库节点读取数据。
906、应用根据读取的数据进行相应的业务处理。
本实施例中,应用仅需调用一次数据库路由装置的路由信息查询接口即可获取该数据存储的数据库节点,数据的读取和调用还是由应用和数据库直接交互,对原来的流程不需要进行修改适配。而且因为数据库路由信息可以放在内存中,单节点路由信息查询接口性能可达到几万TPS,时延小于5毫秒。一般情况下,一套数据库路由装置至少同时可支撑10个业务节点以上,且能够对原业务系统的整体性能影响控制在10%以内。
图10为本实施例的路由信息自动校正流程示意图,如图10所示包括:
1001、在空闲时间定时启动校正流程(时间可配置)。
1002、从各个数据库循环获取数据库路由信息。
具体的,根据配置信息,包括数据库路由信息数据结构与数据库节点信息,读取某数据库数据表所有数据的路由字段值,按该路由字段值进行排序。
1003、从存储模块查询该数据库在本地数据库路由信息中的路由字段值,也按路由字段值进行排序。
1004、从小到大,对排序后的两份路由字段值数据进行对比。
1005、对于两边不一致的数据,在存储模块的数据库路由信息中进行修正。
该实施例可以保证数据库路由装置存储的数据库路由信息的准确性,从而保证路由调度的准确度。
下面基于实际应用对本申请实施例进一步说明,以用户原创内容(User Generated Content,UGC)视频系统(如优酷)为例,对本申请方案进行说明。
业务场景如下:
在UGC视频系统中,普通用户可以上传自己录制的小视频,因此在这个系统中的视频内容会很多,可达到亿级,同时业务上对这些内容数据库的访问频率很频繁,共需要3台Oracle数据库来分担内容数据的存储和业务请求的压力。在2015年已先上线1台数据库节点,后来发现数据库容量不足,引入本申请方案支持分布式数据库后,规划在2016增加数据库服务器DB2存储当年的内容,在2017年增加数据库服务器DB3存储当年的内容,2018年后发布的内容向三台数据库上平均发布。
首先,在应用本申请方案之前,需要作如下适配工作:
UGC系统在内容新增管理流程中,实现和本申请实施例中的数据库路由装置新增数据存储节点申请接口和新增数据同步接口的对接。
UGC系统在内容修改和内容删除管理流程中,实现和本申请实施例中的数据库路由装置路由信息查询接口、修改数据同步接口和删除数据同步接口的对接。
UGC系统在业务查询流程中,实现和本申请实施例中的数据库路由装置路由信息查询接口的对接。
同时还需要在数据库路由装置上根据UGC视频系统的实际情况配置数据库节点信息和数据库分库策略以及数据库路由信息数据结构如图11A,11B,11C所示。
具体内容查询、修改、删除等流程可参照如图6-10对应的实施例。
本UGC视频系统在引入数据库路由装置的情况下,可以根据实际业务需求对数据库节点进行分布式扩展,从而极大的提升了UGC视频系统数据库的读写性能。
下面以支付账务系统(如支付宝)中的应用为例,对本申请方案进行说明。
业务场景:
在支付账务系统中,用户账号数量可能到达亿级别,并且用户的账号可能包含注册账号,手机号码、Email等几种方式。一次性规划10个对等的MySQL数据库。
在应用本申请方案之前,需要作如下适配工作:
支付账务系统在内容新增管理流程中,实现和本申请实施例中的数据库路由装置新增数据存储节点申请接口和新增数据同步接口的对接。
支付账务系统在内容修改和内容删除管理流程中,实现和本申请实施例中的数据库路由装置路由信息查询接口、修改数据同步接口和删除数据同步接口的对接。
支付账务系统系统在业务查询流程中,实现和本申请实施例中的数据库路由装置路由信息查询接口的对接。
同时还需要在数据库路由装置上根据支付账务系统的实际情况配置数据库节点信息和数据库分库策略以及数据库路由信息数据结构如图12A,12B,12C所示。
具体内容查询、新增、修改、删除等流程可参照如图6-10对应的实施例。
本支付账务系统在引入数据库路由装置的情况下,可以根据实际业务需求对数据库节点进行分布式扩展,从而极大的提升了支付账户系统数据库的读写性能。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本申请实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。