一種分布式系統的過載保護方法和服務器的制造方法
【技術領域】
[0001]本發明涉及互聯網通信領域,尤其涉及一種分布式系統的過載保護方法和服務器。
【背景技術】
[0002]對于時延比較敏感的服務,當外部請求超過系統處理能力時,則會出現請求過載現象,如果此時系統沒有采取過載保護,可能導致歷史累計的超時請求像雪球一樣形成惡性循環。
[0003]目前通常使用的過載處理方法為:前端根據后端的負載情況分配用戶請求,即前端不向超過負載能力的后端繼續發起請求;或者,后端如果發現當前超過負載能力時,則拒絕前端發來的新增的用戶請求。當過載發生時,用戶不斷的刷新請求,這也就意味著此時系統的請求隊列中的大部分請求已經無效(用戶用刷新的請求代替了上一次的請求),目前的過載處理方法并不能有效地控制無效請求的蔓延。
【發明內容】
[0004]本發明正是基于上述問題,提出了一種新的技術方案,當負載均衡服務器接收到用戶請求時,則對所述用戶請求加上時間戳,當業務服務器接收到加上時間戳的所述用戶請求時,則根據所述時間戳判斷是否丟棄所述用戶請求,可以控制無效用戶請求的蔓延,進而,提高系統的處理效率。
[0005]本發明第一方面提供了一種分布式系統的過載保護方法,包括:
[0006]負載均衡服務器接收到來自請求端的用戶請求時,給所述用戶請求加上時間戳,并將加上所述時間戳的所述用戶請求轉發至后端的業務服務器;
[0007]所述業務服務器接收到加上所述時間戳的所述用戶請求時,獲取所述時間戳,并判斷本地的系統時間與所述時間戳的時間間隔是否達到預設時長;
[0008]若是,所述業務服務器則將所述用戶請求作為無效請求丟棄。
[0009]可選的,所述業務服務器將所述用戶請求作為無效請求丟棄之后,所述方法還包括:
[0010]所述業務服務器對無效請求次數加一,并檢測當前單位時間段內記錄的所述無效請求次數是否達到第一預設次數閾值;
[0011]若是,所述業務服務器則根據預設丟棄策略丟棄后續接收到的用戶請求,直到檢測到單位時間段內記錄的無效請求次數小于所述第一預設次數閾值。
[0012]可選的,所述業務服務器將所述用戶請求作為無效請求丟棄之后,所述方法還包括:
[0013]所述業務服務器對無效請求次數加一,并檢測當前單位時間段內記錄的所述無效請求次數與上一單位時間段內記錄的所述無效請求次數的差值是否達到第二預設次數閾值;
[0014]若是,所述業務服務器則根據預設丟棄策略丟棄后續接收到的用戶請求,直到檢測到當前單位時間段內記錄的無效請求次數與上一單位時間段內記錄的無效請求次數的差值小于或等于第二預設次數閾值。
[0015]進一步的,NTP服務器校準所述負載均衡服務器和所述業務服務器的系統時間。
[0016]再進一步的,若本地的系統時間與所述時間戳的時間間隔小于或等于所述預設時長,所述方法還包括:
[0017]所述業務服務器將所述用戶請求加入請求隊列中。
[0018]本發明第二方面還提供了一種業務服務器,包括:
[0019]接收模塊,用于接收用戶請求,所述用戶請求攜帶時間戳,所述時間戳是負載均衡服務器接收到所述用戶請求時加上的;
[0020]判斷模塊,用于獲取所述時間戳,并判斷本地的系統時間與所述時間戳的時間間隔是否達到預設時長;
[0021]處理模塊,用于若本地的系統時間與所述時間戳的時間間隔達到所述預設時長,則將所述用戶請求作為無效請求丟棄。
[0022]可選的,所述業務服務器還包括:
[0023]計數器,用于對無效請求次數加一;
[0024]檢測模塊,用于檢測當前單位時間段內所述計數器記錄的所述無效請求次數是否達到第一預設次數閾值;
[0025]所述處理模塊還用于:
[0026]若當前單位時間段內所述計數器記錄的所述無效請求次數達到所述第一預設次數閾值,則根據預設丟棄策略丟棄后續接收到的用戶請求,直到所述檢測模塊判定單位時間段內記錄的無效請求次數小于所述第一預設次數閾值。
[0027]可選的,所述業務服務器還包括:
[0028]計數器,用于對無效請求次數加一;
[0029]檢測模塊,用于檢測當前單位時間段內記錄的所述無效請求次數與上一單位時間段內記錄的所述無效請求次數的差值是否達到第二預設次數閾值;
[0030]所述處理模塊還用于:
[0031 ] 若當前單位時間段內記錄的所述無效請求次數與上一單位時間段內記錄的所述無效請求次數的差值達到所述第二預設次數閾值,則根據預設丟棄策略丟棄后續接收到的用戶請求,直到所述檢測模塊判定當前單位時間段內記錄的無效請求次數與上一單位時間段內記錄的無效請求次數的差值小于或等于第二預設次數閾值。
[0032]進一步的,所述業務服務器還包括:
[0033]轉發模塊,用于若本地的系統時間與所述時間戳的時間間隔小于或等于所述預設時長,則將所述用戶請求加入請求隊列中。
[0034]本發明第三方面還提供了一種負載均衡服務器,所述負載均衡服務器包括:
[0035]接收模塊,用于接收來自請求端的用戶請求;
[0036]處理模塊,用于獲取本地的系統時間,并對所述用戶請求加上時間戳,所述時間戳根據所述系統時間確定;
[0037]轉發模塊,用于將加上所述時間戳的所述用戶請求轉發至后端的業務服務器,以使所述業務服務器根據所述用戶請求的時間戳判斷是否將所述用戶請求作為無效請求丟棄。
[0038]實施本發明實施例,具有以下有益效果:
[0039]當負載均衡服務器接收到來自請求端的用戶請求時,則對所述用戶請求加上時間戳,當業務服務器接收到加上時間戳的所述用戶請求時,則判斷本地的系統時間與所述時間戳的時間間隔是否達到預設時長,若是,說明所述用戶請求為無效請求,則丟棄所述用戶請求,抑制了無效用戶請求的蔓延,進而,提高了系統的處理效率。
【附圖說明】
[0040]為了更清楚地說明本發明實施例中的技術方案,下面將對實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
[0041]圖1是本發明實施例提供的一種分布式系統的過載保護方法的示意圖;
[0042]圖2是本發明實施例提出的一種基于LNMP結構的分布式系統的示意圖;
[0043]圖3是本發明實施例提供的另一種分布式系統的過載保護方法的示意圖;
[0044]圖4是本發明實施例提供的又一種分布式系統的過載保護方法的示意圖;
[0045]圖5是本發明實施例提供的一種業務服務器的結構示意圖;
[0046]圖6是本發明實施例提供的一種負載均衡服務器的結構示意圖。
【具體實施方式】
[0047]下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
[0048]請參閱圖1,圖1是本發明實施例提供的一種分布式系統的請求過載的處理方法的流程示意圖。如圖1所示所述方法可以包括:
[0049]S110,負載均衡服務器接收到來自請求端的用戶請求時,給所述用戶請求加上時間戳,并將加上所述時間戳的所述用戶請求轉發至后端的業務服務器。
[0050]圖2是本發明實施例提出的一種基于LNMP結構