高并发数据处理方法、装置及计算机可读存储介质与流程

文档序号:14078477阅读:149来源:国知局
高并发数据处理方法、装置及计算机可读存储介质与流程
本发明涉及数据处理技术,尤其涉及一种高并发数据处理方法、装置及计算机可读存储介质。
背景技术
:随着信息化的逐步广泛和深入,出现多用户并发操作数据的情况越来越多,例如,网络购票,购物等,尤其是春运抢票或者限时抢购等业务,当到达开售时间,服务器接收到的用户请求访问量过大,会造成服务器线程堵塞、数据库异常等待事件等,用户请求迟迟得不到响应,甚至出现整个系统崩溃的情况。因此,需要一种高并发数据处理方法、装置及计算机可读存储介质,能够降低服务器的并发压力,从而保证应用系统的可用性和吞吐量。技术实现要素:本发明提供一种高并发数据处理方法、装置及计算机可读存储介质,其主要目的在于降低服务器的并发压力,从而保证应用系统的可用性和吞吐量。为实现上述目的,本发明提供一种高并发数据处理方法,应用于一种数据处理装置,该方法包括:接收步骤:接收客户端发送的访问请求;队列管理步骤:将接收到的访问请求以消息方式存储至消息队列;及第一处理步骤:调用预设数量的线程对消息队列中的消息进行处理,从数据库读取相关数据,并将处理结果反馈至客户端。本发明还提供一种高并发数据处理方法,应用于一种数据处理装置,该方法包括:接收步骤:接收客户端发送的访问请求;队列管理步骤:将接收到的访问请求以消息方式存储至消息队列;请求合并步骤:将消息队列中访问请求相同的消息进行合并,形成多个消息组;及第二处理步骤:调用预设数量的线程对该多个消息组进行处理,从数据库读取相关数据,并将处理结果反馈至客户端。优选地,所述消息队列中的消息是按照时间先后顺序存储的。优选地,所述第一处理步骤对消息队列中的消息进行处理遵循先进先出的顺序。优选地,所述请求合并步骤将消息队列中访问请求相同的消息进行合并,形成多个消息组,无相的访问请求的消息自成一组。优选地,所述第二处理步骤对消息队列中多个消息组进行处理遵循消息队列消息组中第一条消息的时间先后顺序。优选地,所述预设数量的线程的数量小于服务器创建的线程总数。另外,本发明提供一种高并发数据处理装置,所述装置包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的高并发数据处理系统,该高并发数据处理系统包括:接收模块、队列管理模块及第一处理模块。所述处理器执行所述高并发数据处理系统时,可实现如下步骤:接收步骤:接收客户端发送的访问请求;队列管理步骤:将接收到的访问请求以消息方式存储至消息队列;及第一处理步骤:调用预设数量的线程对消息队列中的消息进行处理,从数据库读取相关数据,并将处理结果反馈至客户端。本发明还提供一种高并发数据处理装置,所述装置包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的高并发数据处理系统,该高并发数据处理系统包括:接收模块、队列管理模块、请求合并模块及第二处理模块。所述处理器执行所述高并发数据处理系统时,可实现如下步骤:接收步骤:接收客户端发送的访问请求;队列管理步骤:将接收到的访问请求以消息方式存储至消息队列;请求合并步骤:将消息队列中访问请求相同的消息进行合并,形成多个消息组;及第二处理步骤:调用预设数量的线程对该多个消息组进行处理,从数据库读取相关数据,并将处理结果反馈至客户端。此外,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有高并发数据处理系统,所述高并发数据处理系统可被至少一个处理器执行,以实现以下步骤:接收步骤:接收客户端发送的访问请求;队列管理步骤:将接收到的访问请求以消息方式存储至消息队列;及第一处理步骤:调用预设数量的线程对消息队列中的消息进行处理,从数据库读取相关数据,并将处理结果反馈至客户端。本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有高并发数据处理系统,所述高并发数据处理系统可被至少一个处理器执行,以实现以下步骤:接收步骤:接收客户端发送的访问请求;队列管理步骤:将接收到的访问请求以消息方式存储至消息队列;请求合并步骤:将消息队列中访问请求相同的消息进行合并,形成多个消息组;及第二处理步骤:调用预设数量的线程对该多个消息组进行处理,从数据库读取相关数据,并将处理结果反馈至客户端。相较现有技术,本发明提供的高并发数据处理方法、装置及计算机可读存储介质,使用异步队列对客户端数据访问请求进行管理,对相同的数据访问请求进行合并,调用预设数量的线程对消息队列中的消息进行处理,从而在服务器同时收到的数据访问请求量大的情况下,可以有效降低服务器的并发压力,节省最终用户参与界面交互的时间,充分利用服务器端的运算资源,降低高负载下用户之间的相互影响,保证应用系统的可用性和吞吐量。附图说明图1为本发明高并发数据处理装置较佳实施例的示意图。图2为本发明高并发数据处理系统较佳实施例的模块图。图3为本发明高并发数据处理系统另一较佳实施例的模块图。图4为本发明高并发数据处理方法较佳实施例的流程图。图5为本发明高并发数据处理方法另一较佳实施例的流程图。附图标记:1高并发数据处理装置2网络3客户端4数据库11存储器12处理器13通信总线10高并发数据处理系统110接收模块120队列管理模块130第一处理模块140请求合并模块150第二处理模块本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。如图1所示,是本发明高并发数据处理装置1较佳实施例的示例图。所述高并发数据处理装置1包括:存储器11、处理器12、通信总线13及存储在所述存储器11上并可在所述处理器12上运行的高并发数据处理系统10,该装置1通过网络2连接一个或多个客户端3,通过通信总线13与数据库4通信连接。网络2可以为局域网,广域网,城域网等等类型的网络,可以为有线网络,也可以为无线网络。客户端3可以为桌上型计算机、笔记本、平板电脑、手机,或其它可以通过网络2与装置1进行通信的终端装置。处理器12可以是一中央处理器(centralprocessingunit,cpu),微处理器或其他数据处理芯片,用于运行存储器11中存储的高并发数据处理系统10,例如执行高并发数据处理程序等。存储器11存储高并发数据处理系统10的程序代码,发出数据请求的客户的资料,例如客户身份信息、账号信息及数据请求信息等资料。该高并发数据处理装置1连接的存储器11可以是终端的内部存储单元,例如终端的硬盘或者内存,也可以是通过网络连接的独立于前述处理器12的存储器设备。该存储器11可以包括至少一种类型的存储介质,所述存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等等。处理器12从存储器11读取并执行高并发数据处理系统10的程序代码,提供高并发数据处理系统10的下述功能。图1仅示出了具有组件11-13以及高并发数据处理系统的高并发数据处理装置1,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。如图2所示,是本发明高并发数据处理系统10较佳实施例的模块图。在本实施例中,所述高并发数据处理系统10包括:接收模块110、队列管理模块120及第一处理模块130。接收模块110,用于接收客户端3发送的访问请求。例如,当客户通过客户端3参加某商家的线上抢购活动,活动开始时,所述接收模块110接收客户发出的n条抢购请求。队列管理模块120,用于将接收到的访问请求以消息方式存储至消息队列。例如,所述队列管理模块120将该n条抢购请求按时间先后顺序,以消息的形式存储至消息队列。第一处理模块130,调用预设数量的线程对消息队列中的消息进行处理,从数据库4读取相关数据,并将处理结果反馈至客户端3。例如,所述第一处理模块130调用预设数量的线程,对该消息队列中的靠前的抢购请求进行处理,从数据库4中读取被抢购产品的信息,并将处理结果反馈至客户端3。如图3所示,是本发明高并发数据处理系统10另一个较佳实施例的模块图。在本实施例中,所述高并发数据处理系统10包括:接收模块110,用于接收客户端3发送的访问请求。例如,当客户通过客户端3参加某商家的线上抢购活动,活动开始时,所述接收模块110接收客户发出的n条抢购请求。队列管理模块120,用于将接收到的访问请求以消息方式存储至消息队列。例如,所述队列管理模块120将该n条抢购请求按时间先后顺序,以消息的形式存储至消息队列。请求合并模块140,用于将消息队列中访问请求相同的消息进行合并,形成多个消息组。例如,n条抢购请求中,有20条抢购请求抢购产品a,有10条抢购产品b,其他无相同请求的抢购请求各自组成一消息组,那么,所述请求合并模块140将该20条抢购产品a的抢购请求合并成消息组c,该10条抢购产品b的抢购请求合并成消息组d。其中,若消息组c中第一条抢购请求的时间早于其他任一消息组中的第一条抢购请求,则消息组c的消息将优先于其他消息组的消息进行处理。第二处理模块150,用于调用预设数量的线程对该多个消息组进行处理,从数据库4读取相关数据,并将处理结果反馈至客户端3。例如,假设消息组c排列于该消息队列的首端,那么所述第二处理模块150调用预设数量的线程,提取该消息组c的信息进行处理,从数据库4中读取该被抢购a产品的信息,并将处理结果反馈至发出该抢购请求的所有客户端3。如图4所示,是本发明高并发数据处理方法较佳实施例的流程图。在本实施例中,所述高并发数据处理方法包括以下步骤:步骤s111、接收客户端3发送的数据访问请求。例如,当客户春运期间通过客户端3某app上进行网络购票,以g6034(深圳-岳阳)为例。当到达该趟列车的售票时间时,所述接收模块110瞬间接收到n条抢票请求。当客户端3发出请求后,客户端3界面显示“正在排队中”。步骤s112、将接收到的访问请求以消息方式存储至消息队列。例如,所述队列管理模块120将该n条抢票请求按时间先后顺序,以消息的形式存储至消息队列,其中,每抢一张火车票的信息都代表消息队列中的一条消息。步骤s113、调用预设数量的线程对消息队列中的消息进行处理,从数据库4读取相关数据,并将处理结果反馈至客户端3。例如,所述第一处理模块130调用预设数量的线程,对该消息队列中的靠前的抢票请求进行处理,从数据库4中读取余票信息,并将处理结果反馈至客户端3。如图5所示,是本发明高并发数据处理方法另一个较佳实施例的流程图。在本实施例中,所述高并发数据处理方法包括以下步骤:步骤s111、接收客户端3发送的数据访问请求。例如,当客户春运期间通过客户端3在某app上进行网络购票,以g6034(深圳-岳阳)为例。当到达该趟列车的售票时间时,所述接收模块110瞬间接收到n条抢票请求。当客户端3发出请求后,客户端3界面显示“正在排队中”。步骤s112、将接收到的访问请求以消息方式存储至消息队列。例如,所述队列管理模块120将该n条抢购请求按时间先后顺序,以消息的形式存储至消息队列。例如,所述队列管理模块120将该n条抢票请求按时间先后顺序,以消息的形式存储至消息队列,其中,每抢一张火车票的信息都代表消息队列中的一条消息。步骤s114、将消息队列中访问请求相同的消息进行合并,形成多个消息组。例如,n条抢票请求中,有20条抢票请求抢购深圳到岳阳的二等座,有10条抢购深圳到株洲的一等座,那么,所述请求合并模块140将该20条抢购深圳到岳阳的二等座的抢购请求合并成消息组e,将10条抢购产品b的抢购请求合并成消息组f,其他无相同的抢票请求各自组成一消息组,若消息组e中第一条抢票请求的发起时间早于其他任一消息组中的第一条抢票请求的发起时间,则消息组e中的消息将优先于其他消息组的消息进行处理。步骤s115、调用预设数量的线程对该多个消息组进行处理,从数据库4读取相关数据,并将处理结果反馈至客户端3。例如,假设消息组e排列于该消息队列的首端,那么所述第二处理模块150调用预设数量的线程,提取该消息组e的信息进行处理,从数据库4中读取余票信息,并将处理结果反馈至发出该抢购请求的所有客户端3。此外,本发明还包括一种计算机可读存储介质,该计算机可读存储介质存储有高并发数据处理系统10。在本实施例中,该高并发数据处理系统10被至少一个处理器12执行,以实现以下步骤:步骤s111、接收客户端3发送的访问请求。例如,当客户通过客户端3参加某商家的线上抢购活动,活动开始时,所述接收模块110接收客户发出的n条抢购请求。步骤s112、将接收到的访问请求以消息方式存储至消息队列。例如,所述队列管理模块120将该n条抢购请求按时间先后顺序,以消息的形式存储至消息队列。步骤s113、调用预设数量的线程对该条消息进行处理,从数据库4读取相关数据,并将处理结果反馈至客户端3。例如,所述第一处理模块140提取该消息队列中的第一条抢票请求的关键信息并进行分析,从数据库4中读取余票信息,并将处理结果反馈至客户端3。在另一个较佳实施例中,该高并发数据处理系统10被至少一个处理器12执行,以实现以下步骤:步骤s111、接收客户端3发送的访问请求。例如,当客户通过客户端3参加某商家的线上抢购活动,活动开始时,所述接收模块110接收客户发出的n条抢购请求。步骤s112、将接收到的访问请求以消息方式存储至消息队列。例如,所述队列管理模块120将该n条抢购请求按时间先后顺序,以消息的形式存储至消息队列。步骤s114、将消息队列中访问请求相同的消息进行合并,形成多个消息组。例如,n条抢购请求中,有20条抢购请求抢购产品a,有10条抢购产品b,那么,所述合并模块140将该20条抢购产品a的抢购请求合并成消息组c,该10条抢购产品b的抢购请求合并成消息组d。其中,若消息组c中第一条抢购请求的时间早于消息组d中的第一条抢购请求,则消息组c中的消息将优先于消息组d的消息进行处理。步骤s115、调用预设数量的线程对该多个消息组进行处理,从数据库4读取相关数据,并将处理结果反馈至客户端3。例如,假设消息组c排列于该消息队列的首端,那么,所述第二处理模块150提取该消息组c的关键信息进行处理,从数据库4中读取被该抢购a产品的信息,反馈至发出该抢购请求的所有客户端3。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。本实施方式中提到的“一个实施例”、“另一个实施例”可以为相同的实施例,也可以为不同的实施例。最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1