[发明专利]一种基于Epoll异步服务器的高效响应方法有效
申请号: | 201710660691.1 | 申请日: | 2017-08-04 |
公开(公告)号: | CN107479955B | 公开(公告)日: | 2020-04-17 |
发明(设计)人: | 江汀;赵万亮;姜思远;王月铭 | 申请(专利权)人: | 南京华飞数据技术有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F11/30 |
代理公司: | 南京品智知识产权代理事务所(普通合伙) 32310 | 代理人: | 奚晓宁;杨陈庆 |
地址: | 210019 江苏省南京市建邺*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 epoll 异步 服务器 高效 响应 方法 | ||
本发明一种基于Epoll异步服务器的高效响应方法涉及应用服务器技术领域,特别是一种高效的Epoll异步服务器响应方法。包括:初始化,和启动监控调度线程。通过级联Epoll监听线程,将传统的Epoll监听处理线程,从处理中完全释放出来,仅负责监听和分发功能,从而能够及时监听并响应高并发事件。而处理的功能则交由二级Epoll器,实质为线程组。同时通过创建多个环形队列,将原来一个队列的压力进行分摊,避免在高并发性情况下,导致一个队列容易队列满的情况。为了进一步优化功能,提供优先级的功能,进而根据优先级划分能够根据请求事件的轻重缓急处理事件,对优先级高的时间优先响应,这样做更为高效、合理。
技术领域
本发明一种基于Epoll异步服务器的高效响应方法涉及应用服务器技术领域,特别是一种高效的Epoll异步服务器响应方法。
背景技术
目前Epoll异步模型中,边缘触发是一种高效模式。然而对于大量请求而言,单线程操作可能会忙于循环处理某次过程中的请求,从而丢失处理客户端新的请求。当前一种有效的方式是,通过将客户端请求压入队列,利用线程池中的空闲线程依次处理队列中的请求,将监听处理线程从处理请求任务中释放出来,从而能够及时监听到客户端请求并及时响应。而不会由于同时忙于监听和处理客户端的高并发请求而不能够及时监听到客户端的请求。但是,该方法只能从一定程度上解决问题,对于高并发的请求而言,频繁的压入队列,需要拷贝,不能完全将监听线程从处理过程中释放出来,仍然会丢失请求。尤其当客户端请求数量庞大的时候,这种情况愈加突出。
对于客户端的高并发请求,全部往一个队列中存放;队列中存放的客户端请求需要等线程池中有空闲线程才能够进行处理。然而,对于大量客户端请求,存放带处理客户端请求的队列很容易满,而导致客户端新的请求无法被压入队列而丢失。
客户的请求显然会有轻重缓急,不区分优先级,只往一个队列中存放;根据队列先进先出原则,线程池上的空闲线程会依次处理客户端的请求,很可能导致优先级高的任务被放到了后面进行处理,而优先级低的任务反而首先被处理。
发明目的
本发明的目的是针对上述不足之处提供一种基于Epoll异步服务器的高效响应方法,采用Epoll级联,通过多队列,区分优先级,可以实现高并发客户端请求及时监听并相应,从而使Epoll监听线程能够完全从处理过程中释放出来,能够及时高效地监听并响应客户端请求,克服了现有方法中Epoll监听线程不能完全有效地解决高并发客户端请求的缺陷。
本发明是采取以下技术方案实现的:
一种基于Epoll异步服务器的高效响应方法,包括以下步骤:
1)初始化,所述初始化过程包括:
1-1)主进程创建一级Epoll监听器和二级Epoll监听器;
1-2)初始化二级Epoll监听器,根据配置值,循环创建二级Epoll监听器并初始化;
1-3)初始化一级Epoll监听器,即初始化Epoll和EpollHandler接口类,建立服务端socket,同时在一级Epoll监听器对服务端的fd注册event事件;所述fd表示文件描述符;
1-4)通过一级Epoll监听器的EpollHandler注册接口,向一级Epoll监听器注册二级Epoll监听器,使一级Epoll监听器能够与二级Epoll监听器对接;
1-5)创建并初始化环形队列;
1-6)启动监控调度线程,循环扫描判断步骤(1-5)的环形队列是否有一个不为空,不为空则进入步骤(1-7);
1-7)创建线程池,并启动K个空闲线程并挂入空闲线程链表;所述K值为预设值。
步骤1)中的一级Epoll监听器,用来监听客户端的高并发请求;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京华飞数据技术有限公司,未经南京华飞数据技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710660691.1/2.html,转载请声明来源钻瓜专利网。