一种提高数据处理效率的方法及服务器与流程

文档序号:14723014发布日期:2018-06-18 10:32阅读:156来源:国知局
本发明涉及数据处理领域,尤其是涉及一种提高数据处理效率的方法及服务器。
背景技术
:大数据并发处理是现在互联网必不可少的一个因素,业务数据的增多对服务器处理能力提出了很高的要求。目前针对业务数据的处理方式,为了提高对业务数据队列的处理性能,主要是通过硬件扩容,增加服务器数量,做负载平衡等手段进行,但是通常这些手段都需要额外增加一些资源,因此急需对数据内部提升处理数据的效率进行潜力挖掘。技术实现要素:为克服现有技术的不足,本发明提供了一种提高数据处理效率的方法及服务器。为此,本发明提供如下技术方案:一种提高数据处理效率的方法,所述提高数据处理效率的方法包括以下步骤:步骤1)服务器获取数据源发送的业务数据,所述业务数据包括操作标志位和业务数据信息,所述操作标志位用于标志业务数据的业务类型;业务数据根据业务需求进行分类,将相同业务需求类型的业务数据归为一类。步骤2)服务器对接收到的业务数据进行解析和判断,得到业务数据的处理队列类型,所述处理队列类型包括快队列处理和慢队列处理;步骤3)根据业务数据的处理队列类型,将业务数据依次加入到相应的消息队列中,等待业务处理单元的调用,所述消息队列包括快消息队列和慢消息队列;当得到的处理队列类型为慢队列处理,则将业务数据挂载到慢队列消息队列;当得到的处理队列类型为快队列处理,则将业务数据挂载到快消息队列。将接收到的业务数据挂载到消息队列的顺序是按照时间顺序依次挂载的,这样能够保证数据的公平处理。步骤4)业务处理单元调用消息队列,并进行业务分发处理。进一步地,所述步骤2)中的解析和判断分别为:解析:所述服务器接收到业务数据后,解析出业务数据中的操作标志位;判断:所述服务器解析得到操作标志位后,通过查询队列映射配置表并得到对应的业务数据的处理队列类型。进一步地,所述队列映射配置表是存储在服务器内部的一张映射表,所述映射表的表结构包括操作标志位和处理队列类型,所述操作标志位和处理队列类型一一对应。进一步地,在服务器对业务数据进行解析之前,对队列映射配置表进行初始化。进一步地,所述步骤3)中,业务处理单元根据业务数据的处理队列类型和消息队列中的队列数量进行动态增加或减少用于处理队列的线程数量,开启的线程按照先进先出的顺序从消息队列中取出业务数据进行处理。进一步地,所述提高数据处理效率的方法还包括业务数据处理时长的计算,所述业务数据处理时长的计算为业务处理单元处理完成业务数据的作业处理任务后,计算并更新业务数据的处理时长。进一步地,所述业务数据处理时长是业务数据的处理完成时间与处理开始时间之间的差值。进一步地,所述提高数据处理效率的方法还包括队列映射配置表的更新,所述队列映射配置表的更新为将业务数据处理时长的计算中得到的业务数据处理时长和队列处理基准时长相比较,并根据比较结果动态更新队列映射配置表。所述队列处理基准时长为用于和业务数据处理时长做比较,从而得到业务数据的处理队列类型,并记录每次业务数据处理时长和队列处理基准时长的比较结果。进一步的,当得到的业务数据处理时长比队列处理基准时长小时,则比较结果记录为小于;当得到的业务数据处理时长比队列处理基准时长大,但是没有超过队列处理基准时长一个数量级时,则比较结果记录为介于;当得到的业务数据处理时长比队列处理基准时长大并且超过队列处理基准时长一个数量级时,则比较结果记录为大于。连续记录三次业务数据处理时长,将业务数据处理时长和队列处理基准后,如果所得到的比较结果,连续三次都是小于时,将业务数据的处理队列类型设置为快队列处理,更新队列映射配置表;如果所得到的比较结果,连续三次都是大于时,将业务数据的处理队列类型设置为慢队列处理,更新队列映射配置表;如果所得到的比较结果,介于的结果出现一次及以上时,则不更新队列映射配置表。一种应用提高数据处理效率的方法的服务器,所述服务器包括:-接收单元,用于接收数据源发送的业务数据;-解析单元,用于对所述接收单元接收到的业务数据进行解析,得到所述业务数据的操作标志位;-判断单元,用于解析单元解析得到操作标志位后,通过查询队列映射配置表并得到对应的业务数据的处理队列类型;-业务处理单元,用于根据业务数据的处理队列类型将业务数据分发到对应的消息队列,并执行消息队列中的作业任务;以及-存储单元,用于存储队列映射配置表和相同处理队列类型业务数据的执行次数。进一步地,所述服务器还包括计算单元,用于计算业务数据的处理时长;所述业务数据处理时长是业务数据的处理完成时间与处理开始时间之间的差值,所述存储单元还用于存储业务数据处理时长。进一步地,所述服务器还包括更新单元,用于更新业务数据的历史平均处理时长、业务数据处理时长与队列处理基准时长的比较结果和队列映射配置表,所述存储单元还用于存储业务数据处理时长与队列处理基准时长的比较结果和更新后的队列映射配置表。本发明提供一种提高数据处理效率的方法及服务器,所述提高数据处理效率的方法通过将业务数据按照其处理队列类型分别挂载到相应的快消息队列或慢消息队列,进一步通过动态的业务处理流程加快业务数据的处理过程,并通过业务处理时长与队列处理基准时长的比较结果来动态调整队列映射配置表,从而实现数据的高效处理。本发明也提供一种应用该方法的服务器。本发明提供的提高数据处理效率的方法能够对业务数据进行分流处理,有效地克服现有技术中存在的缺点,从而提高业务数据的处理能力。附图说明图1是本发明所提供的实施例1的一种提高业务数据处理效率的方法的流程图图2是本发明所提供的实施例1的一种应用提高业务数据处理效率的方法的服务器的示意图;图3是本发明所提供的实施例1和2的业务数据格式的示意图;图4是本发明所提供的实施例1和2的业务数据处理的示意图;图5是本发明所提供的实施例2的一种提高业务数据处理效率的方法的流程图;图6是本发明所提供的实施例2的一种应用提高业务数据处理效率的方法的服务器的示意图。具体实施方式下面结合附图与具体实施例对本发明作进一步详细描述。实施例1如图1所示,一种提高数据处理效率的方法,所述提高数据处理效率的方法包括:S101,服务器获取数据源发送的业务数据,所述业务数据包括操作标志位和业务数据信息,业务数据格式如图3所示。例如,手机向服务器发送两条业务数据:业务数据A和业务数据B,业务数据A是查询指令,业务数据B是插入指令,每条业务数据包含了操作标志位。以操作标志位为8位编码为例,业务数据A的操作标志位为00000000,业务数据B的操作标志位为00000001。S102,服务器对接收到的业务数据进行解析,得到业务数据的操作标志位。例如服务器对步骤S101的发送的业务数据A和业务数据B分别进行解析,获取业务数据A和业务数据B的前8位,得到业务数据A的操作标志位是00000000,业务数据B的操作标志位为00000001。S103,根据解析得到的操作标志位,判断业务数据的处理队列类型,如果是慢队列处理,转入步骤S104;如果是快队列处理,转入步骤S105。对业务数据的处理队列类型的判断,是通过将操作标志位和服务器存储的队列映射配置表的对比完成。根据操作标志位,在队列映射配置表中查找并得到对应的处理队列类型。例如用S102中得到业务数据A的操作标志位00000000,和队列映射配置表的操作标志位列对比,得到操作标志位00000000的处理队列类型是慢队列处理;用S102中得到业务数据B的操作标志位00000001,和队列映射配置表的操作标志位列对比,得到操作标志位00000001的处理队列类型是快队列处理;S104,将接收到的业务数据挂载到慢消息队列。经S103判断为慢消息的业务数据A按时间顺序挂载到慢消息队列。业务数据的挂载顺序是按照时间先后顺序进行挂载,这样保证了该队列的业务数据被处理的公平性。例如手机在向服务器发送业务数据A和业务数据B后,再向服务器发送了一业务数据C,业务数据C的操作标志位是00000000,经过步骤S102和S103解析判断后,得到业务数据C的处理队列类型是慢队列处理,业务数据C将也被挂在到慢消息队列,因为队列中中先有了业务数据A,业务数据C将排在业务数据A的后面。S105,将接收到的业务数据挂载到块消息队列;S106,业务数据处理单元执行消息队列中的作业任务,可以根据处理队列类型和消息队列中的队列数量进行动态改变处理队列的线程数量。如图4所示,消息队列510刚开始是空队列,有一个监控线程501处于实时监控的状态,监控消息队列是否有业务数据进入队列。待监控程序发现消息队列510中存在业务数据后立即启动处理线程502,处理线程502根据消息队列510中的业务数据类型和业务数据的数量,动态的增加或减少处理线程的数量,以缩短处理时间,提高系统的性能。举例来说,S105后业务数据A进入到慢消息队列,待监控线程501监控到第一个业务数据A进入到消息队列510时,监控线程501立即启动处理线程502。处理线程的数量随着队列消息中业务数据的处理效率和数量进行动态改变,当监控线程501业务数据C又进入到消息队列510时,监控线程501将开启额外的线程503。如图2所示,一种应用本实施例1中所提供的提高数据处理效率的方法的服务器,包括:接收单元101,解析单元102,判断单元103,业务处理单元104和存储单元105;接收单元101,用于接收数据源发送的业务数据。其中数据源可以是外部终端设备,例如:手机、平板、电脑等具备网络通信功能的设备;也可以是服务器内部的其他单元。解析单元102,用于对所述接收单元接收到的业务数据进行解析,得到所述业务数据的操作标志位。如图3所示,业务数据包含两段信息,即操作标志位11和业务数据信息12,操作标志位用于标识业务数据的业务类型。其中一种可能该操作标志位是一段8位的编码,每一个8位编码代表一种操作,例如:00000000代表插入的操作,00000001代表查询的操作等。另外一种可能是通过不同的参数标识业务数据的业务类型,例如,得到的业务数据是map<methodname,value>的格式,其中methodname就是业务数据的操作标志位,value是业务数据中携带的参数信息。举例来说,当methodname是“insert”时是插入操作,而当methodname是“search”时是查询操作。本实施例1中以操作标志位为8位编码作为本实施例的最先选择。判断单元103,用于解析单元解析得到操作标志位后,通过查询队列映射配置表并得到对应的业务数据的处理队列类型。判断单元根据业务数据中操作标志位,将业务数据判定为慢队列处理或快队列处理。业务处理单元104,用于根据业务数据的处理队列类型将业务数据分发到对应的消息队列,并执行消息队列中的作业任务。业务处理单元根据业务数据的处理队列类型,将业务数据分别挂载到快消息队列或慢消息队列中。消息队列中的作业任务就是一条业务数据的操作指令。存储单元105,用于存储队列映射配置表。历史平均处理时长是同类业务数据所有处理次数的平均处理时长,执行次数是相同操作类型的业务数据执行请求的所有累计次数。队列映射配置表用于提供业务数据类型判断时的对比标准,队列映射配置表中包含操作标志位和处理队列类型。以操作标志位为8位编码为例,其中队列配置映射表的结构如下表所示:操作标志位处理队列类型00000000慢00000001块………….实施例2如图5所示,一种提高数据处理效率的方法,所述提高数据处理效率的方法包括:S201,服务器获取数据源发送的业务数据。S202,服务器对接收到的业务数据进行解析,得到业务数据的操作标志位。S203,根据解析得到的操作标志位,判断业务数据的处理队列类型。如果是慢队列处理,转入步骤S204;如果是快队列处理,转入步骤S205;S204,将接收到的业务数据挂载到慢消息队列。S205,将接收到的业务数据挂载到快消息队列。S206,业务数据处理单元执行消息队列中的作业任务。S207,待业务数据单元处理完成后,计算业务数据处理时长。业务数据处理时长是业务数据的处理开始时间和处理完成时间之间的差值。现在一条查询业务数据C开始进入到服务器中进行数据操作,记录业务数据处理的开始时间,经过步骤S201~S207后,获取业务数据处理完成的结束时间,计算差值得到业务数据的本次处理时长是1.2ms。S208,得到业务数据的处理时长后,将得到的业务数据处理时长和队列处理基准时长做比较,根据两者的比较结果动态更新队列映射配置表。队列处理基准时长,用于和业务数据处理时长做对比,得到业务数据的处理队列类型,将得到的业务数据处理时长和队列处理基准时长做比较后,记录每次的比较结果。当得到的业务数据处理时长比队列处理基准时长小时,则比较结果记录为小于;当得到的业务数据处理时长比队列处理基准时长大,但是没有超过队列处理基准时长一个数量级时,则比较结果记录为介于;当得到的业务数据处理时长比队列处理基准时长大并且超过队列处理基准时长一个数量级时,则比较结果记录为大于。连续记录三次业务数据处理时长,将业务数据处理时长和队列处理基准后,如果所得到的比较结果,连续三次都是小于时,将业务数据的处理队列类型设置为快队列处理,更新队列映射配置表;如果所得到的比较结果,连续三次都是大于时,将业务数据的处理队列类型设置为慢队列处理,更新队列映射配置表;如果所得到的比较结果,介于的结果出现一次及以上时,则不更新队列映射配置表。本实施例2中,队列处理基准时长以0.1ms为基准,当业务数据连续三次的处理时长都小于0.1ms时,则将相同类型的业务数据的处理队列类型设置为快队列处理;当业务数据连续三次的处理时长都超过0.1ms,且都明显大于队列处理基准时长一个数量级以上,即连续三次处理时长都大于1ms时,则将相同类型的业务数据的处理队列类型设置为慢队列处理;介于0.1ms和1ms之间的,将同样将处理队列类型设置为快队列处理。例如,查询类型业务数据原先的处理队列类型是快队列处理,业务数据C是操作标志位为00000001的查询类型业务数据,其处理时长为1.2ms,已经大于队列处理基准时长0.1ms一个数量级,则记录查询类型的处理时长。如果接下来连续两条查询类型业务数据,业务数据D和业务数据E,其处理时长分别是1.5ms和2ms,已经连续3次都大于队列处理基准时长一个数量级以上,则将查询类型业务数据的处理队列类型更改为慢队列处理,同时更新队列映射配置表。如果接下来连续两条查询类型业务数据,业务数据D和业务数据E,其处理时长分别是1.5ms和0.2ms,其中在三条数据中有一条数据是处于0.1ms和1ms之间,则不变更业务数据的处理队列类型。每次对队列映射配置表的更新,是在整一个消息队列中的全部业务数据执行完成后,而不是业务数据执行完成后立马更新队列映射配置表,这样确保了服务器在执行消息队列时系统整体的稳定性。如图6所示,一种应用本实施例2提供的提高数据处理效率的方法的服务器,包括:接收单元201,解析单元202,判断单元203,业务处理单元204,计算单元205,更新单元206和存储单元207。接收单元201,用于接收数据源发送的业务数据;解析单元202,用于对所述接收单元接收到的业务数据进行解析,得到所述业务数据的操作标志位。;判断单元203,用于判断业务数据的处理队列类型;业务处理单元204,用于根据业务数据的处理队列类型将业务数据分发到对应的消息队列,并执行消息队列中的作业任务;计算单元205,用于计算业务数据的处理时长;业务数据处理时长是业务数据的处理开始时间和处理完成时间之间的差值。更新单元206,用于更新业务数据处理时长与队列处理基准时长的比较结果,并更新队列映射配置表。业务数据处理时长与队列处理基准时长的比较结果包括大于、小于和介于三种。存储单元207,用于存储队列映射配置表、业务数据的处理时长和比较结果。上述实施例用于对本发明作进一步说明,但并不将本发明局限于这些具体实施方式。本领域技术人员应该认识到,本发明涵盖了权利要求书范围内所可能包括的所有备选方案、改进方案和等效方案。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1