CN103685363A - 一种高效可靠的多任务处理方法及系统 - Google Patents
一种高效可靠的多任务处理方法及系统 Download PDFInfo
- Publication number
- CN103685363A CN103685363A CN201210328285.2A CN201210328285A CN103685363A CN 103685363 A CN103685363 A CN 103685363A CN 201210328285 A CN201210328285 A CN 201210328285A CN 103685363 A CN103685363 A CN 103685363A
- Authority
- CN
- China
- Prior art keywords
- message
- server
- message server
- client
- main
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种高效可靠的多任务处理方法及系统,属于计算机网络技术领域。本发明将整个系统分为两个端点:一个端点称为生产端,即客户端将请求发送到WEB服务器,WEB服务器将请求封装成消息发送到消息服务器上。然后将消息发送成功的结果返回。另一个端点是消费端,即业务逻辑处理单元从消息服务器上取得消息,并解析消息成相关的请求,然后对其进行处理,处理完成以后发送消费完成的确认消息给消息服务器,消息服务器将此条消息从服务器中删除。本发明节省了WEB服务器的系统资源,降低了系统的耦合性,提高了扩展性;同时提升了用户体验,保持用户操作了连续性。
Description
技术领域
本发明涉及一种高效可靠的多任务处理方法及系统,属于计算机网络技术领域。
背景技术
在当前的WEB系统中,绝大多数是基于HTTP的请求和响应的B/S架构的,整个过程如下:客户端(浏览器)发送请求到WEB服务器,服务器端接收请求并进行业务逻辑的处理,最后将处理后得到的结果返回到客户端。现有技术在服务器端业务逻辑复杂,处理比较耗时的情况下会出现如下问题:
对于服务器端某些时性要求并不高,但业务逻辑非常复杂,处理耗时非常大,客户端的往往响应的时间比较长,甚至会导致客户端迟迟无法得到响应,严重影响用户体验,同时,长时间未返回会造成session失效,极大的影响了用户操作的连续性。
发明内容
针对现有技术中存在的技术问题,本发明的目的在于提供一种高效可靠的多任务处理方法及系统;本发明将服务器端接收客户端的请求和服务器端对请求进行业务逻辑的处理进行物理上的分离,将请求封装成消息发送到消息服务器上,业务逻辑处理单元从消息服务器获取消息并解析成请求之后进行业务逻辑的处理。
本发明将整个系统分为两个端点:一个端点称为生产端,即客户端将请求发送到WEB服务器,WEB服务器将请求封装成消息发送到消息服务器上。然后将消息发送成功的结果返回。另一个端点是消费端,即业务逻辑处理单元从消息服务器上取得消息,并解析消息成相关的请求,然后对其进行处理,处理完成以后发送消费完成的确认消息给消息服务器,消息服务器将此条消息从服务器中删除。
本发明的技术方案为:
一种高效可靠的多任务处理方法,其步骤为:
1)WEB服务器解析客户端请求,获取客户端请求的参数;
2)WEB服务器将客户端请求封装成消息发送到消息服务器集群的主消息服务器上;其中,WEB服务器将客户端请求参数中业务逻辑处理的请求参数组装成字节流作为所封装消息的内容;
3)主消息服务器接收消息并将其进行持久化到一共享数据库,然后再将消息发送到相应的业务逻辑处理单元;
4)业务逻辑处理单元将收到的消息解析成客户端请求后对其进行处理,并发送反馈信息给主消息服务器;
5)如果业务逻辑处理单元执行成功,则主消息服务器将持久化到该共享数据库中的该消息删除。
进一步的,在于WEB服务器监听消息服务器集群中各个消息服务器的连接情况,确定可达的所述主消息服务器。
进一步的,WEB服务器根据设定的发送频率将所封装消息发送到所述主消息服务器。
进一步的,所述消息服务器集群包括若干台消息服务器,在同一时间内,将其中一台消息服务器设为主消息服务器,提供服务,其余消息服务器设为辅消息服务器,并形成辅消息服务器队列;如果当前主消息服务器无法提供服务,则将辅消息服务器队列中最靠前的一台可达的辅消息服务器设为主消息服务器;如果原主消息服务器恢复正常,则将原主消息服务器列入辅消息服务器队列的末尾处。
进一步的,所述主消息服务器持久化消息到所述共享数据库的方法为:按照消息内容中的业务逻辑以队列的方式存储消息,不同业务逻辑处理单元对应不同的队列。
进一步的,所述业务逻辑处理单元根据设定的频率接收主消息服务器发送来的消息;所述消息为二进制字节流消息。
一种高效可靠的多任务处理系统,其特征在于包括一WEB服务器、一消息服务器集群、以业务处理系统;其中,业务处理系统包括若干业务逻辑处理单元,WEB服务器通过网络与客户端连接,消息服务器集群通过网络分别与WEB服务器、业务处理系统连接;
所述WEB服务器用于接收客户端的请求,并对客户端请求进行解析后封装为消息发送给消息服务器集群;接收消息服务器集群返回的反馈消息,将其反馈给客户端;
所述消息服务器集群用于接收WEB服务器封装后的消息并将其进行持久化到一共享数据库,然后再将消息发送到相应的业务处理系统;
所述业务处理系统用于将收到的消息解析成客户端请求后对其进行处理,并发送反馈信息给消息服务器集群。
进一步的,所述消息服务器集群按照消息内容中的业务逻辑以队列的方式将消息持久化到所述共享数据库,不同的队列对应所述业务系统中不同业务逻辑处理单元。
进一步的,所述消息服务器集群如果收到业务处理系统反馈消息为执行成功,则消息服务器集群将删除持久化到所述共享数据库中的该消息。
进一步的,所述WEB服务器对客户端的请求采用异步处理方式进行处理;所述业务处理系统采用多线程处理方式处理客户端请求。
与现有技术相比,本发明产生的技术效果:
1、将客户端的请求进行异步处理,有效的提升了用户体验,保持用户操作了连续性。
2、复杂的业务逻辑的处理从WEB服务器当中分离出来,Web服务器只负责请求的解析、信息封装和收发,节省了WEB服务器的系统资源。
3、将复杂的业务逻辑独立出来,便于采用多线程等提升性能的手段,降低了系统的耦合性,提高了扩展性。
附图说明
图1为本发明的系统结构图;
图2为WEB服务器工作流程图;
图3为消息服务器工作流程图;
图4为业务逻辑处理单元工作流程图。
具体实施方式
本发明主要有三个部分组成:WEB服务器、消息服务器集群、业务处理系统(包括若干业务逻辑处理单元);消息服务器集群中包括一消息服务器共享的持久化消息数据库,主要作用是防止消息丢失,保障业务逻辑中所处理的消息能够顺序的进行处理。F5是负载均衡的硬件设备。如图1所示。
WEB服务器主要功能是接受并解析HTTP请求,然后将请求封装成消息格式并发送到消息服务器上。所以WEB服务器这端主要由3部分组成:HTTP请求解析模块,消息封装模块和消息发送模块,如图2所示。
HTTP请求解析模块:主要是解析HTTP请求,获取请求的参数。
消息封装模块:将解析模块获取的请求参数中业务逻辑处理的请求参数组装成字节流作为消息的内容。
消息服务器监听模块:监听集群中各个消息服务器的连接情况。
消息发送模块:根据指定的发送频率将字节流消息发送到消息服务器监听模块所确定的可达的消息服务器。
消息服务器集群主要由若干台消息服务器组成,在同一时间内,只有一台消息服务器提供服务,称为主消息服务器,其余的都是辅消息服务器,并形成辅消息服务器队列。如果主消息服务器因故障无法提供服务,比如路由不可达,则由辅消息服务器队列中的最靠前的一台可达的辅消息服务器接管服务,变为主消息服务器。如果原来的主消息服务器恢复正常,则原主消息服务器进入辅消息服务器队列的末尾处。
主消息服务器的主要功能是接收消息并将其进行持久化到数据库,即按顺序存放在持久化数据库中,所有消息服务器集群都共享该数据库,然后再将消息发送到相应的业务逻辑处理单元并接收其反馈信息,如果业务处理单元执行成功,则将保存在数据库中的持久化消息进行删除。消息服务器主要有以下几个模块组成:消息接收模块,消息识别模块,消息发送模块,消息持久化管理模块,持久化消息数据库。如图3所示。
消息接收模块:主要是接收WEB服务发送来的封装过的请求消息和业务逻辑处理单元发送过来的反馈信息。
消息识别模块:对接收到的消息来源,发送目的,消息队列的工D,消息类型进行识别,并将结果发送到持久化消息管理模块。
持久化消息管理模块:对持久化消息DB进行增删的操作。持久化消息将按照消息内容中的业务逻辑以队列的方式存储消息,不同业务逻辑处理单元对应不同的队列。
持久化消息DB:保存所有未被业务逻辑处理单元消费的消息。
消息发送模块:将不同队列里的消息发送各个业务逻辑处理单元处理。每一业务逻辑处理单元处理同一类消息。
业务逻辑处理单元主要是接收消息服务器发送来的消息,并解析成对应的请求信息,执行相应的业务逻辑。主要由消息接收模块,业务处理模块,反馈信息发送模块。如图4所示。
消息接收模块:主要功能是根据设定的频率接收主消息服务器发送来的二进制字节流消息。
业务处理模块:将字节流解析成为对应的请求,并执行相应的业务逻辑操作。
反馈信息发送模块:如果业务处理成功,将执行成功的消息发送到主消息服务器。如果失败,则将失败的消息以邮件或者其他方式通知给客户端的用户。
Claims (10)
1.一种高效可靠的多任务处理方法,其步骤为:
1)WEB服务器解析客户端请求,获取客户端请求的参数;
2)WEB服务器将客户端请求封装成消息发送到消息服务器集群的主消息服务器上;其中,WEB服务器将客户端请求参数中业务逻辑处理的请求参数组装成字节流作为所封装消息的内容;
3)主消息服务器接收消息并将其进行持久化到消息服务器集群的共享数据库,然后再将消息发送到相应的业务逻辑处理单元;
4)业务逻辑处理单元将收到的消息解析成客户端请求后对其进行处理,并发送反馈信息给主消息服务器;
5)如果业务逻辑处理单元执行成功,则主消息服务器将持久化到该共享数据库中的该消息删除。
2.如权利要求1所述的方法,其特征在于WEB服务器监听消息服务器集群中各个消息服务器的连接情况,确定可达的所述主消息服务器。
3.如权利要求1或2所述的方法,其特征在于WEB服务器根据设定的发送频率将所封装消息发送到所述主消息服务器。
4.如权利要求1或2所述的方法,其特征在于所述消息服务器集群包括若干台消息服务器,在同一时间内,将其中一台消息服务器设为主消息服务器,提供服务,其余消息服务器设为辅消息服务器,并形成辅消息服务器队列;如果当前主消息服务器无法提供服务,则将辅消息服务器队列中最靠前的一台可达的辅消息服务器设为主消息服务器;如果原主消息服务器恢复正常,则将原主消息服务器列入辅消息服务器队列的末尾处。
5.如权利要求1所述的方法,其特征在于所述主消息服务器持久化消息到所述共享数据库的方法为:按照消息内容中的业务逻辑以队列的方式存储消息,不同业务逻辑处理单元对应不同的队列。
6.如权利要求1所述的方法,其特征在于所述业务逻辑处理单元根据设定的频率接收主消息服务器发送来的消息;所述消息为二进制字节流消息。
7.一种高效可靠的多任务处理系统,其特征在于包括一WEB服务器、一消息服务器集群、以业务处理系统;其中,业务处理系统包括若干业务逻辑处理单元,WEB服务器通过网络与客户端连接,消息服务器集群通过网络分别与WEB服务器、业务处理系统连接;
所述WEB服务器用于接收客户端的请求,并对客户端请求进行解析后封装为消息发送给消息服务器集群;接收消息服务器集群返回的反馈消息,将其反馈给客户端;
所述消息服务器集群用于接收WEB服务器封装后的消息并将其进行持久化到消息服务器集群的共享数据库,然后再将消息发送到相应的业务处理系统;
所述业务处理系统用于将收到的消息解析成客户端请求后对其进行处理,并发送反馈信息给消息服务器集群。
8.如权利要求7所述的多任务处理系统,其特征在于所述消息服务器集群按照消息内容中的业务逻辑以队列的方式将消息持久化到所述共享数据库,不同的队列对应所述业务系统中不同业务逻辑处理单元。
9.如权利要求7或8所述的多任务处理系统,其特征在于所述消息服务器集群如果收到业务处理系统反馈消息为执行成功,则消息服务器集群将删除持久化到所述共享数据库中的该消息。
10.如权利要求7所述的多任务处理系统,其特征在于所述WEB服务器对客户端的请求采用异步处理方式进行处理;所述业务处理系统采用多线程处理方式处理客户端请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210328285.2A CN103685363A (zh) | 2012-09-07 | 2012-09-07 | 一种高效可靠的多任务处理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210328285.2A CN103685363A (zh) | 2012-09-07 | 2012-09-07 | 一种高效可靠的多任务处理方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103685363A true CN103685363A (zh) | 2014-03-26 |
Family
ID=50321671
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210328285.2A Pending CN103685363A (zh) | 2012-09-07 | 2012-09-07 | 一种高效可靠的多任务处理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103685363A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106919638A (zh) * | 2016-07-14 | 2017-07-04 | 阿里巴巴集团控股有限公司 | 数据持久化处理方法、装置及系统 |
CN107317745A (zh) * | 2017-06-06 | 2017-11-03 | 山东中创软件商用中间件股份有限公司 | 一种消费端与消息代理之间的消息传输方法及装置 |
CN109660617A (zh) * | 2018-12-18 | 2019-04-19 | 中电科华云信息技术有限公司 | 一种基于服务器集群的消息推送方法 |
CN110837426A (zh) * | 2019-11-06 | 2020-02-25 | 腾讯科技(深圳)有限公司 | 消息处理方法、装置及系统、存储介质 |
CN110928704A (zh) * | 2018-09-20 | 2020-03-27 | 广州虎牙信息科技有限公司 | 消息处理方法、消息处理系统、服务器及计算机存储介质 |
CN114979240A (zh) * | 2022-07-26 | 2022-08-30 | 杭州奇思妙行网络科技有限公司 | 一种分布式WebSocket接入系统及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1348298A (zh) * | 2001-11-27 | 2002-05-08 | 协马(北京)信息技术有限公司 | 基于短消息服务的无线增值业务的实现方法和系统 |
CN1674553A (zh) * | 2004-03-24 | 2005-09-28 | 联想(北京)有限公司 | 一种利用移动设备远程使用局域网资源的方法 |
CN1725689A (zh) * | 2004-07-22 | 2006-01-25 | 中兴通讯股份有限公司 | 电信网络呼叫中心系统及其实现方法 |
CN1805345A (zh) * | 2005-01-12 | 2006-07-19 | 北京航空航天大学 | Web服务工作流处理器 |
-
2012
- 2012-09-07 CN CN201210328285.2A patent/CN103685363A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1348298A (zh) * | 2001-11-27 | 2002-05-08 | 协马(北京)信息技术有限公司 | 基于短消息服务的无线增值业务的实现方法和系统 |
CN1674553A (zh) * | 2004-03-24 | 2005-09-28 | 联想(北京)有限公司 | 一种利用移动设备远程使用局域网资源的方法 |
CN1725689A (zh) * | 2004-07-22 | 2006-01-25 | 中兴通讯股份有限公司 | 电信网络呼叫中心系统及其实现方法 |
CN1805345A (zh) * | 2005-01-12 | 2006-07-19 | 北京航空航天大学 | Web服务工作流处理器 |
Non-Patent Citations (1)
Title |
---|
闫宏印; 冯浩: "J2EE平台下社保综合系统的设计与实现", 《计算机工程》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106919638A (zh) * | 2016-07-14 | 2017-07-04 | 阿里巴巴集团控股有限公司 | 数据持久化处理方法、装置及系统 |
CN107317745A (zh) * | 2017-06-06 | 2017-11-03 | 山东中创软件商用中间件股份有限公司 | 一种消费端与消息代理之间的消息传输方法及装置 |
CN110928704A (zh) * | 2018-09-20 | 2020-03-27 | 广州虎牙信息科技有限公司 | 消息处理方法、消息处理系统、服务器及计算机存储介质 |
CN109660617A (zh) * | 2018-12-18 | 2019-04-19 | 中电科华云信息技术有限公司 | 一种基于服务器集群的消息推送方法 |
CN110837426A (zh) * | 2019-11-06 | 2020-02-25 | 腾讯科技(深圳)有限公司 | 消息处理方法、装置及系统、存储介质 |
CN110837426B (zh) * | 2019-11-06 | 2024-01-30 | 腾讯科技(深圳)有限公司 | 消息处理方法、装置及系统、存储介质 |
CN114979240A (zh) * | 2022-07-26 | 2022-08-30 | 杭州奇思妙行网络科技有限公司 | 一种分布式WebSocket接入系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109327509B (zh) | 一种主/从架构的低耦合的分布式流式计算系统 | |
US9818063B2 (en) | Forecasting interest in an object over a future period of time using a three-stage time-series analysis process | |
CN103685363A (zh) | 一种高效可靠的多任务处理方法及系统 | |
US9769110B2 (en) | Message delivery in messaging networks | |
CN104243481B (zh) | 一种用电信息采集前置数据处理的方法及系统 | |
US20140244721A1 (en) | Real-time communications using a restlike api | |
US20120136946A1 (en) | Cluster server in instant messaging system and method for communicating between clusters | |
CN106021315B (zh) | 一种应用程序的日志管理方法及系统 | |
CN105338061A (zh) | 一种轻量级消息中间件的实现方法与系统 | |
WO2021190087A1 (zh) | 任务执行方法、装置、系统和服务器 | |
CN111970195B (zh) | 数据传输方法和流式数据传输系统 | |
US10152194B2 (en) | Transmitting hardware-rendered graphical data | |
CN102882705A (zh) | 终端设备上报日志的方法及日志上报系统 | |
CN113590437B (zh) | 一种告警信息处理方法、装置、设备和介质 | |
CN103002049A (zh) | 一种大数据量数据的网络传输系统 | |
CN112115016B (zh) | 应用性能监控系统 | |
CN103685357A (zh) | 一种账号多开消息处理方法及系统 | |
CN103457802A (zh) | 一种信息传输系统及方法 | |
CN113687956A (zh) | 消息路由分发方法、装置、计算机设备及存储介质 | |
CN111541555A (zh) | 群聊优化方法及相关产品 | |
CN113703997A (zh) | 集成多种消息代理的双向异步通信中间件系统及实现方法 | |
CN113971098A (zh) | 一种RabbitMQ消费管理方法及系统 | |
CN114500243B (zh) | 数据通信方法、装置、计算机可读介质及电子设备 | |
US8201017B2 (en) | Method for queuing message and program recording medium thereof | |
CN105162837A (zh) | 海量数据存储环境下提升i/o吞吐率的方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140326 |