[发明专利]消息处理方法有效
| 申请号: | 201010503911.8 | 申请日: | 2010-09-30 |
| 公开(公告)号: | CN101964763A | 公开(公告)日: | 2011-02-02 |
| 发明(设计)人: | 陈俊彪 | 申请(专利权)人: | 北京神州泰岳软件股份有限公司 |
| 主分类号: | H04L12/58 | 分类号: | H04L12/58;H04L29/06;G06F9/46 |
| 代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 王莹 |
| 地址: | 100089 北京市海淀*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 消息 处理 方法 | ||
技术领域
本发明涉及计算机技术领域,特别涉及一种消息分发及性能调优技术中的消息处理方法。
背景技术
在大访问量、高并发的大型网站中,Web服务器的线程消耗是非常严重的,线程资源十分保贵,如何提高线程利用率、提高请求的响应能力常常是网站性能优化的关键点。但在系统中又常常会有一些高并发、高耗时、低实时性的操作,这些操作的结果对于网站用户来说并不需要及时反馈,但是如果网页等待这些同步操作返回,则对线程占用和响应都有严重的影响,减少服务的吞吐量。这样,如何分流这些消息,进行异步处理就变得重要了。异步调用框架就提供了一个通用的模型来处理这样的调用。
现有方案一:使用线程池对耗时操作进行异步处理。把一个需要执行的操作交给线程池,线程池自己负责线程的创建、分配和销毁。通过使用线程池可以对高消耗的操作进行优化,从而提高系统的处理能力和吞吐量。其缺陷是:线程池仍然是消耗本机线程,在高并发的情况下对CPU和内存消耗非常严重,虽然可以通过修改配置提高线程数,但是对本机资源的消耗是无法有效解决的。
现有方案二:使用消息队列(MSMQ)异步处理高消耗的操作。通过使用消息队列可以把待处理的消息路由到本机或者别的机器上的另外一个进程进行处理。这种方式提供更好的资源扩展,通过把消息路由到别的机器进行处理,可以降低对本机资源的消耗,同时消息队列所提供的异步和离线机制可以更好的提高主程序的响应能力。消息队列的离线机制也有效保障了消息传递的可靠性。其缺陷是:消息队列本身没有合适的可编程机制,支持针对不同的消息处理应用相对应的插件进行处理的机制,以及针对不同消息的按需的灵活路由,需要在此基础上进行扩展。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:如何提供一个通用的框架,对消息进行分流和异步处理,并且使服务端能够支持针对不同的消息动态地选择相应的插件分别进行处理。
(二)技术方案
为解决上述技术问题,本发明提供了一种消息处理方法,其特征在于,包括以下步骤:
S1:客户端把要进行异步处理或离线处理的消息路由到对应的服务端;
S2:服务端接收所述消息,然后分析其中的消息来源参数,生成可在反转控制IOC容器中提取的关系名称;
S3:通过所述关系名称从所述IOC容器中提取与消息对应的消息处理器;
S4:在各自的消息处理器中实现对消息的处理。
其中,步骤S1具体包括:
S11:客户端把要进行异步处理或离线处理的消息写入微软消息队列MSMQ;
S12:Windows操作系统根据服务端提供的服务地址,把消息自动路由到服务端。
其中,步骤S1中消息队列的写入操作应用Windows通信基础WCF来处理。
其中,步骤S2中生成可在反转控制IOC容器中提取的关系名称具体方式为:根据事先在IOC容器中注册的消息来源参数与消息处理器的对应关系提取关系名称。
其中,在步骤S2中,通过所述服务端提供的消息服务接口接收所述消息。
其中,消息接口中的参数包括:消息标识和消息来源标识,所述消息来源标识包括:客户端标识、服务标识及服务的版本ID。
其中,在步骤S2中,所述消息处理器通过统一的接口被调用。
其中,在步骤S4中,对消息的处理包括对外部服务的调用、对数据库的操作以及进行日志记录。
(三)有益效果
本发明通过综合应用MSMQ、WCF、IOC容器和巧妙的接口设计,我们开发出了一个可以支持异步处理消息、具有自动选择插件进行消息处理功能的通用的异步调用方法。通过应用此方法可以把消息的处理路由给别的进程或者别的服务器进行处理,能够指定不同的服务地址和部署更多的服务器进行处理,从而可以支持大量的消息处理任务,进而大大地优化网站或服务的性能,提高该网站或服务的吞吐量和降低响应时间,更有效地利用服务器资源。
附图说明
图1是本发明的一种消息处理方法流程图;
图2是实现本发明的消息处理方法的客户端服务端框架结构图;
图3是本发明实施例的消息处理时序图。
具体实施方式
为使本发明的目的、内容、和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明的整体思路是:设计一个分布式调用框架,分为客户端调用和服务端处理。
如图1所示,本发明的步骤包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京神州泰岳软件股份有限公司,未经北京神州泰岳软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010503911.8/2.html,转载请声明来源钻瓜专利网。





