消息处理线程的控制方法及装置的制造方法

文档序号:8258170阅读:144来源:国知局
消息处理线程的控制方法及装置的制造方法
【技术领域】
[0001]本发明涉及到业务系统消息处理领域,特别涉及到一种消息处理线程的控制方法及装置。
【背景技术】
[0002]现在业务系统越来越庞大,动辄就是成千上万的用户同时在线,对请求的响应速度要求也越来越高,对支撑业务系统运行的应用服务器来说也就提出了更高的要求,需要能够做到充分利用服务器的物理性能,来处理大量客户端并发的业务请求消息。
[0003]参照图1,常见的应用服务器处理客户端并发的业务请求消息的过程如下:
[0004]1、应用服务器100接收从客户端101、102、103发送来的业务请求消息,交给消息分发器104中。
[0005]2、消息分发器104将接收到的各个业务请求消息分派给消息处理器105处理,分配一个线程池来处理接收到的各个业务请求消息,且每一个接收到业务请求消息使用一个线程来处理,在该业务请求处理完后将该线程释放回线程池。
[0006]3、通过业务请求处理线程池的大小来控制并发处理业务请求的数量。
[0007]但是,由于并发用户的数量越来越多,业务请求响应时间又不能降低,在这种传统模式下的业务请求消息的处理遇到了一些问题:
[0008]A、传统模式下,请求响应时间包括:业务请求的真正处理时间加上在消息队列中的等待时间。如果并发用户业务请求太多,超过业务请求处理线程池中的线程数量,那么就会有业务请求处于等待状态,直到其他业务请求处理完之后释放线程。在大规模用户并发业务请求消息的情况下,业务请求消息在消息队列中等待的时间就会更长,业务请求的响应时间就会急剧增加。
[0009]B、如果扩大线程池,增加线程的数量,在线程数量不超过1000的情况下还能解决一部分问题。如果数量再大一些,到几千、上万,业务系统的处理能力就会开始下降。
[0010]C、传统的多线程模式下,随着业务逻辑越来越复杂,编程的难度大幅增加,导致编程效率的下降。经常在编写一段代码时,要反复的思考、模拟多线程情况下可能遇到的多线程之间的同步问题。
[0011]D、不能有效地利用的系统提供的异步1 (Input/Output,输入/输出)机制,因为线程入口是同步的,需要在业务请求消息返回时获得返回结果给客户端,所以即使业务系统提供了异步1机制,也需要等到异步回调以后,线程才能继续往下运行。
[0012]基于上述分析,现有通过增加线程数量的方式来解决大规模用户并发业务请求对业务系统的影响主要包括:
[0013]一、随着线程数量的增加,业务系统会为每个线程分配线程堆栈,线程数量增多就会占用很大部分的系统内存,从而导致真正的业务处理可用的内存资源减少;
[0014]二、线程数量增加之后,线程调度所消耗的CPU开销明显增多,又会与业务处理争用CPU资源,造成业务处理速度降低。

【发明内容】

[0015]本发明的主要目的为提供一种消息处理线程的控制方法及装置,旨在降低业务请求消息在消息队列中等待的时间,进而降低业务请求的响应时间,提高业务系统的业务处理效率。
[0016]本发明提出一种消息处理线程的控制方法,该方法包括:
[0017]当接收到业务请求消息时,确定接收的业务请求消息中的业务内容;
[0018]将确定的业务内容按照类型分为不同类型的业务,将各个不同类型的业务分别发送至对应的线程进行处理。
[0019]优选地,所述业务类型包括计算类型和1操作类型,所述将确定的业务内容按照类型分为不同类型的业务,将各个不同类型的业务分别发送至对应的线程进行处理的步骤包括:
[0020]将确定的业务内容按照类型分为计算业务和1操作业务,将1操作业务按照操作类型分为不同操作类型的1操作业务;
[0021]将分类后的计算业务发送至计算线程进行处理,将各个不同操作类型的1操作业务分别发送至对应类型的1操作线程进行处理。
[0022]优选地,在所述将分类后的计算业务发送至计算线程进行处理,将各个不同操作类型的1操作业务分别发送至对应类型的1操作线程进行处理的步骤之后,该方法包括:
[0023]在完成1操作之后的业务内容需要进行计算业务时,将完成1操作之后的业务内容发送至所述计算线程进行处理。
[0024]优选地,在所述将分类后的计算业务发送至计算线程进行处理,将各个不同操作类型的1操作业务分别发送至对应类型的1操作线程进行处理的步骤之后,该方法还包括:
[0025]在完成计算操作之后的业务内容需要进行1操作业务时,将完成计算操作之后的业务内容发送至对应类型的1操作线程进行处理。
[0026]优选地,当接收到多个业务请求消息时,该方法还包括:
[0027]将多个业务请求消息中的同一类型的计算业务发送至同一个计算线程进行处理。
[0028]本发明还提出一种消息处理线程的控制装置,该装置包括:
[0029]处理模块,用于当接收到业务请求消息时,确定接收的业务请求消息中的业务内容 '及
[0030]将确定的业务内容按照类型分为不同类型的业务;
[0031]数据接发模块,用于将各个不同类型的业务分别发送至对应的线程进行处理。
[0032]优选地,所述业务类型包括计算类型和1操作类型,
[0033]所述处理模块,用于将确定的业务内容按照类型分为计算业务和1操作业务,将1操作业务按照操作类型分为不同操作类型的1操作业务;
[0034]所述数据接发模块,用于将分类后的计算业务发送至计算线程进行处理,将各个不同操作类型的1操作业务分别发送至对应类型的1操作线程进行处理。
[0035]优选地,所述数据接发模块,还用于在完成1操作之后的业务内容需要进行计算业务时,将完成1操作之后的业务内容发送至所述计算线程进行处理。
[0036]优选地,所述数据接发模块,还用于在完成计算操作之后的业务内容需要进行1操作业务时,将完成计算操作之后的业务内容发送至对应类型的1操作线程进行处理。
[0037]优选地,当接收到多个业务请求消息时,所述数据接发模块,还用于将多个业务请求消息中的同一类型的计算业务发送至同一个计算线程进行处理。
[0038]相对现有技术,本发明通过将接收的业务请求消息中的业务内容按类型分为不同类型的业务,将不同类型的业务内容发送至对应的不同线程进行处理,在大规模用户并发业务请求消息的情况下,降低业务请求消息在消息队列中等待的时间,进而降低业务请求的响应时间,提闻业务系统的业务处理效率。
【附图说明】
[0039]图1为业务系统结构图;
[0040]图2为本发明消息处理线程的控制方法的第一实施例的流程示意图;
[0041]图3为本发明消息处理线程的控制方法的第二实施例的流程示意图;
[0042]图4为本发明消息处理线程的控制方法的第三实施例的流程示意图;
[0043]图5为本发明消息处理线程的控制装置的较佳实施例的具体架构图。
[0044]本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
【具体实施方式】
[0045]应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0046]如图2所示,为本发明消息处理线程的控制方法的第一实施例的流程示意图。
[0047]需要强调的是:图2所示流程图仅为一个较佳实施例,本领域的技术人员当知,任何围绕本发明思想构建的实施例都不应脱离于如下技术方案涵盖的范围:
[0048]当接收到客户端发送来的业务请求消息时,确定接收的业务请求消息中的业务内容;将确定的业务内容按照类型分为不同类型的业务,将各个不同类型的业务分别发送至对应的线程进行处理。
[0049]以下是本实施例逐步实现消息处理线程的控制的具体步骤:
[0050]步骤S11,当接收到业务请求消息时,确定接收的业务请求消息中的业务内容。
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1