[發明專利]一種基于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.szxzyx.cn/pat/books/201710660691.1/2.html,轉載請聲明來源鉆瓜專利網。





