【技术实现步骤摘要】
本专利技术涉及一种网络数据传输,尤其涉及单机支持高并发访问的处理方法及系统。
技术介绍
并发是指网站在同一时间访问的人数,人数越多,瞬间带宽要求更高,也就是要求服务器瞬间处理的流量越大,当并发数超过一定量(例如百万级)后称为高并发,网站如果要在短时间内响应高并发的请求,需要对服务器的处理能力提出更高要求。目前已有的高并发解决方案,多采用分布式的集群部署方式。这种方式要求前端布置一个服务器,后端布置多台服务器,前端的一个服务器用于负载均衡,将并发转发给后端的服务器,后端的服务器进行业务处理。这种分布式的系统架构虽然对高并发处理具有一定的效果,但其系统设计及部署都比较复杂,并且整体成本较高。而单机(即单服务器)环境下支持的并发数小,当单机系统需要支持更多用户时,只能通过部署更多软硬件来扩容,造成资源浪费,成本增加。
技术实现思路
本专利技术要解决的主要技术问题是,提供一种实现单机支持高并发处理方法及系统,不需要分布式的集群部署,而是采用单机系统来支持多用户的高并发处理,使单机系统实现支持更多用户。根据本专利技术的第一方面,提供一种实现单机支持高并发处理方法,包括由同一服务器执行的主线程工作步骤和工作线程工作步骤,所述主线程工作步骤包括:主线程监听事件;当主线程监听到事件后,判断事件类型;按照事件类型对该事件进行响应和处理,当事件类型为客户端新连接事件时,接收新的套接字并对新的套接字进行处理;当事件类型为传输请求事件时,接收传输请求指令,根据传输请求指令生成请求消息添加到接收消息队列等待工作线程的读取;当事件类型为输出事件时,将处于发送状态的数据进行发送处理;所述 ...
【技术保护点】
一种实现单机支持高并发处理方法,其特征在于包括,由同一服务器执行的主线程工作步骤和工作线程工作步骤,所述主线程工作步骤包括:主线程监听事件;当主线程监听到事件后,判断事件类型;按照事件类型对该事件进行响应和处理,当事件类型为客户端新连接事件时,接收新的套接字并对新的套接字进行处理;当事件类型为传输请求事件时,接收传输请求指令,根据传输请求指令生成请求消息添加到接收消息队列等待工作线程的读取;当事件类型为输出事件时,将处于发送状态的数据进行发送处理;所述工作线程工作步骤包括:读取接收消息队列中的请求消息;获取请求消息的响应数据并将响应数据处置为发送状态,以供主线程进行发送处理。
【技术特征摘要】
1.一种实现单机支持高并发处理方法,其特征在于包括,由同一服务器执行的主线程工作步骤和工作线程工作步骤,所述主线程工作步骤包括: 主线程监听事件; 当主线程监听到事件后,判断事件类型; 按照事件类型对该事件进行响应和处理,当事件类型为客户端新连接事件时,接收新的套接字并对新的套接字进行处理;当事件类型为传输请求事件时,接收传输请求指令,根据传输请求指令生成请求消息添加到接收消息队列等待工作线程的读取;当事件类型为输出事件时,将处于发送状态的数据进行发送处理; 所述工作线程工作步骤包括: 读取接收消息队列中的请求消息; 获取请求消息的响应数据并将响应数据处置为发送状态,以供主线程进行发送处理。2.如权利要求1所述的方法,其特征在于,所述主线程监听事件之前还包括:创建监听套接字,将监听套接字绑定所述服务器的IP地址和端口,在主线程监听事件过程中监听来自于被绑定的服务器的IP地址和端口的事件,所述主线程监听到事件后,根据所述服务器底层对事件设置的标识判断事件类型。3.如权利要求1或2所述的方法,其特征在于,当事件类型为客户端新连接事件时,所述接收新的套接字并对新的套接字进行处理步骤包括: 循环接收新的套接字,如果接收失败,则结束内部循环,如果接收成功,则记录客户端信息,当接收到数据读取完毕标识时,则结束事件处理。4.如权利要求3所述的方法,其特征在于,新的套接字接收成功后,将新的套接字设置为非阻塞状态,所述记录客户端信息包括:将新的套接字加入服务器系统的I/O模型队列中,并将与该新的套接字对应的客户端信息添加到会话管理器中。5.如权利要求1或2所述的方法,其特征在于,当事件类型为传输请求事件时,所述接收传输请求指令,并将指令体中的请求消息添加到接收消息队列步骤包括: 接收传输请求指令的指令头; 根据指令头中描述的长度信息动态分配指令体缓存空间; 接收指令体数据,并将接收到的指令体数据放入指令体缓存空间; 判断指令的接收状态,如果整个指令接收成功,则根据请求的指令头及指令体生成一个请求消息,将请求消息添加到接收消息队列;如果接收到数据读取完毕标识,则结束事件处理;如果接收失败,则删除I/o模型队列中与发送传输请求指令的客户端对应的套接字,删除会话管理器中该客户端信息。6.如权利要求1或2所述的方法,其特征在于,当事件类型为输出事件时,将处于发送状态的数据进行发送处理步骤包括: 当判断数据发送成功后,将I/o模型队列中与接收该数据的客户端的套接字中的输出事件修改为传输请求事件; 当判断数据发送失败后,将I/o模型队列中与接收该数据的客户端的套接字删除,并删除会话管理器中该客户端信息。7.如权利要求1或2所述的方法,其特征在于,获取请求消息的响应数据并将响应数据处置为发送状态包括:根据请求消息动态分配响应数据缓存空间; 调用业务处理函数对请求消息进行处理; 将响应数据存入响应数据缓存空间; 将响应数据缓存空间关联到数据发送指针上,并触发输出事件。8.一种实现单机支持高并发处理系统,其特征在于包括: 接收消息队列,其用于接收消息; 主线程,其用于监听事件,当监听到事件后,判断事件类型,按照事件类型对该事件进行响应和处理,当事件类型为客户端新连接事件时...
【专利技术属性】
技术研发人员:刘小杰,伍正勇,
申请(专利权)人:深圳市快播科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。