[发明专利]一种基于分布式总线的消息处理方法、服务器和系统有效
申请号: | 201210499433.7 | 申请日: | 2012-11-29 |
公开(公告)号: | CN103856440A | 公开(公告)日: | 2014-06-11 |
发明(设计)人: | 林爱民;张迁 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;H04L29/08 |
代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 徐立 |
地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 分布式 总线 消息 处理 方法 服务器 系统 | ||
技术领域
本发明涉及数据处理技术领域,特别涉及一种基于分布式总线的消息处理方法、服务器和系统。
背景技术
随着网络技术的发展,网络应用的种类越来越多,网络应用中客户端通常会通过RPC(Remote Procedure Call Protocol,远程过程调用协议)向远端服务器请求相应的服务。
RPC是一种通过网络从远程计算机程序上请求服务的协议。客户端通过RPC从服务器调用服务过程大致如下:客户端与服务器建立连接后,调用RPC接口函数向服务器发送携带有进程参数的调用信息,然后等待应答消息;服务器通过相应的服务器接口函数接收上述调用信息后,获得该调用信息中的进程参数,调用进程执行操作,并将操作结果作为应答消息返回给客户端,完成调用。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
服务器在接收到调用信息就立即开始处理,在面对海量用户接入的情况时,由于需要处理的数据量过大,而服务器的处理能力有限,这样就增加了服务器的负载,降低了系统的工作能力,同时还可能造成调用信息丢失。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种基于分布式总线的消息处理方法、服务器和系统。所述技术方案如下:
一方面,本发明实施例提供了一种基于分布式总线的消息处理方法,所述方法包括:
接收来自客户端的请求数据包,并将所述请求数据包存入输入消息队列中;
从所述输入消息队列的队首开始,选取与空闲的消息处理线程数量相等的所述请求数据包,并采用所述空闲的消息处理线程分别对选取的所述请求数据包进行处理,得到应答数据包;
将所述应答数据包发送给所述客户端。
其中,所述接收来自客户端的请求数据包,包括:
与所述客户端建立连接,并将建立连接后的所述客户端标记为连接状态;
与处于连接状态的所述客户端建立会话并将建立会话后的所述客户端标记为会话状态,以接收处于会话状态的所述客户端发送的请求数据包。
进一步地,所述与处于连接状态的所述客户端建立会话之前,所述方法还包括:
判断是否有会话处于空闲状态;
若有会话处于空闲状态,则与处于连接状态的所述客户端建立会话;否则,让所述客户端排队等待空闲的会话,并将排队等待的所述客户端标记为会话排队状态。
进一步地,所述方法还包括:
当处于会话状态的所述客户端异常断开时,将与异常断开的所述客户端对应的会话变为保护状态。
进一步地,在所述判断是否有会话处于空闲状态之前,所述方法还包括:
判断是否有与处于连接状态的所述客户端对应的处于保护状态的会话,若有,则直接与处于连接状态的客户端建立会话。
进一步地,所述方法还包括:
在收到处于连接状态的所述客户端的尝试会话请求时,若所述客户端已存在进行中的会话,则断开与所述进行中的会话对应的旧连接,并让所述会话与新连接关联。
其中,所述请求数据包为基于二进制通信协议的数据包。
进一步地,所述请求数据包的包头的格式为:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210499433.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:上传动式干碾机
- 下一篇:一种酸槽进酸防酸雾装置