本發明涉及計算機WEB服務器技術領域,特別涉及一種采用異步事件驅動實現WEB服務器負載均衡的方法。
背景技術:
服務器負載均衡是通過一定的資源調度算法,將外部傳來的請求均勻分布到相應的處理模塊,解決大量用戶的并發訪問服務,實現事件的并行處理。負載均衡具有兩方面的含義:一是將大量的并發訪問分擔到多個節點進行處理,減少等待時間;二是將重負載、高頻訪問的時間進行節點的分擔操作。
采用異步事件驅動模型可以同時執行多個任務,不必等待某一項任務完成,例如IO操作。采用異步方式有利于減少整體任務的執行時間,提高資源的利用率。
Web訪問中的異步事件驅動模型,如圖1所示。
現有技術下,大量的用戶訪問會導致服務器負載不均衡,在網絡擁塞的情況下,資源隊列的訪問效率還是比較低,從而增加了HTTP請求的等待成本。
技術實現要素:
為了解決現有技術的問題,本發明提供了一種采用異步事件驅動實現WEB服務器負載均衡的方法,其能夠提高資源隊列的訪問效率,從而降低HTTP請求的等待成本,實現Web服務器的負載均衡。
本發明所采用的技術方案如下:
一種采用異步事件驅動實現WEB服務器負載均衡的方法,包括以下步驟:
A、將客戶端對服務器的訪問依據其所請求服務器資源的不同進行分類,同時,將服務器的所有資源進行整合、分類、標記,同一種類型的資源形成一個資源隊列;
B、當客戶端對服務器進行資源請求時,服務器響應資源請求事件,根據資源請求的類型進行搜索資源,查找對應的資源隊列;
如果當前隊列中的沒有空閑資源,服務器同時進行其他資源隊列的資源響應,并將已經獲得的資源返回給客戶端。
步驟B中,同時記錄服務器經常被訪問的資源隊列,標記該隊列為高頻訪問隊列,并形成高優先級隊列的訪問副本。
本發明提供的技術方案帶來的有益效果是:
服務器負載的均衡是建立在網絡結構之上的一種調度策略,能夠有效的擴展服務器的帶寬和增加吞吐量,增強服務器的網絡數據處理能力。本發明在網絡擁塞的情況下,將客戶端對服務器的訪問依據其所請求服務器資源的不同進行分類,同時,將服務器的所有資源進行整合、分類、標記,同一種類型的資源形成一個資源隊列。當客戶端對服務器進行資源請求時,服務器響應資源請求事件,根據資源請求的類型進行搜索資源,查找對應的資源隊列,如果當前隊列中的沒有空閑資源,服務器不會一直等待該資源的隊列響應,而是同時進行其他資源隊列的資源響應,并將已經獲得的資源返回給客戶端。在這一過程中記錄服務器經常被訪問的資源隊列,標記該隊列為高頻訪問隊列,并形成高優先級隊列的訪問副本,提高該隊列的資源訪問效率,從而降低HTTP請求的等待成本,實現Web服務器的負載均衡。
附圖說明
為了更清楚地說明本發明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為現有技術下的Web訪問中的異步事件驅動模型;
圖2為本發明的一種采用異步事件驅動實現WEB服務器負載均衡的方法的方法原理圖。
具體實施方式
為使本發明的目的、技術方案和優點更加清楚,下面將結合附圖對本發明實施方式作進一步地詳細描述。
實施例一
大量的用戶訪問會導致服務器負載不均衡,要解決大量的并行訪問問題,本實施例在服務器中,首先將服務器資源進行歸類、整合、標記,將相同類型的資源劃分到同一個資源隊列中,給每一個資源隊列進行標記,例如,資源隊列A類。當大量用戶進行并行訪問服務器資源的時候,服務器依據資源類型進行劃分訪問,分擔到不同的資源隊列中,訪問該資源列表的同類資源。服務器不需要等待該資源隊列的響應才進行下一資源的訪問,可以同時進行多個資源隊列的同時訪問,各資源隊列分別對服務器進行響應,減少資源請求的等待時間。
在訪問資源的同時,服務器記錄下資源的訪問頻率,并隨著資源訪問次數的增加,逐步提高該資源隊列的優先級,同時,將經常訪問的資源定義為高頻訪問資源,由于對高頻資源的訪問是網絡擁塞的主要原因,服務器生成高頻資源的副本,通過副本分擔資源的訪問率,減輕該資源的負載,實現服務器的負載均衡。
以上所述僅為本發明的較佳實施例,并不用以限制本發明,凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。