1.一種注冊方法,其特征在于,所述方法應用于前端負載均衡器,所述前端負載均衡器與至少一個后端服務器設置于一個組播組內(nèi),同一組播組內(nèi)的所述前端負載均衡器和所述后端服務器均設置有相同的組播地址,所述前端負載均衡器設置有可用服務器列表,所述可用服務器列表用于記錄注冊成功的后端服務器的單播地址,所述方法包括:
所述前端負載均衡器向所述組播組內(nèi)的后端服務器組播發(fā)送IGMP general query報文,其中所述IGMP general query報文的組播地址字段攜帶所述前端負載均衡器的單播地址;
所述前端負載均衡器在預設端口監(jiān)聽所述組播組內(nèi)所有后端服務器響應所述IGMP general query報文分別單播發(fā)送的宣告報文,其中所述宣告報文的目的地址字段包括所述前端負載均衡器的單播地址,目的端口包括所述預設端口,源地址字段包括發(fā)送所述宣告報文的后端服務器的單播地址,所述預設端口為預先指定的所述前端負載均衡器的非系統(tǒng)端口;
所述前端負載均衡器解析所述宣告報文以獲取所述源地址字段攜帶的后端服務器的單播地址;
在所述源地址字段攜帶的后端服務器的單播地址沒有記錄在所述可用服務器列表中時,所述前端負載均衡器將所述源地址字段攜帶的后端服務器的單播地址記錄在所述可用服務器列表。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述可用服務器列表中記錄的每一所述單播地址均對應一心跳計時器,在所述前端負載均衡器將所述源地址字段攜帶的后端服務器的單播地址記錄在所述可用服務器列表的步驟之后,所述方法還包括:
所述前端負載均衡器為所述源地址字段攜帶的后端服務器的單播地址設置心跳計時器并開始計時。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述方法還包括:
所述前端負載均衡器在所述源地址字段攜帶的后端服務器的單播地址記錄在所述可用服務器列表中時,控制所述源地址字段攜帶的后端服務器的單播地址對應的心跳計時器重新計時。
4.根據(jù)權(quán)利要求2或3所述的方法,其特征在于,所述方法還包括:
所述前端負載均衡器在所述可用服務器列表中記錄的單播地址對應的心跳計時器的計時值超出預定時間段時,控制所述心跳計時器重新計時,并累計所述心跳計時器的超時次數(shù),在所述超時次數(shù)超出預定次數(shù)時,將與所述心跳計時器對應的單播地址從所述可用服務器列表中移除。
5.根據(jù)權(quán)利要求1至4任一項所述的方法,其特征在于,所述前端負載均衡器向所述組播組內(nèi)的后端服務器組播發(fā)送IGMP general query報文的步驟具體包括:
所述前端負載均衡器在向所述組播組內(nèi)的后端服務器組播發(fā)送所述IGMP general query報文時開始計時;
在所述前端負載均衡器接收到所述組播組內(nèi)最先接收到所述IGMP general query報文的后端服務器響應所述IGMP general query報文向所述組播組組播發(fā)送的IGMP membership response報文時,所述前端負載均衡器根據(jù)所述IGMP membership response報文確認所述組播組有效,且在計時值超過預定周期后繼續(xù)向所述組播組內(nèi)的后端服務器組播發(fā)送IGMP general query報文;
在所述前端負載均衡器沒有接收到所述IGMP membership response報文時,所述前端負載均衡器確認所述組播組失效,在所述計時值超過所述預定周期后停止繼續(xù)向所述組播組內(nèi)的后端服務器組播發(fā)送IGMP general query報文。
6.根據(jù)權(quán)利要求1至5任一項所述的方法,其特征在于,所述宣告報文為UDP報文。
7.一種注冊方法,其特征在于,所述方法應用于后端服務器,所述后端服務器與前端負載均衡器設置于同一個組播組內(nèi),同一組播組內(nèi)的所述前端負載均衡器和所述后端服務器均設置有相同的組播地址,所述方法包括:
所述后端服務器接收所述前端負載均衡器向所述組播組內(nèi)組播發(fā)送的IGMP general query報文,其中所述IGMP general query報文的組播地址字段攜帶所述前端負載均衡器的單播地址;
所述后端服務器響應所述IGMP general query報文向所述前端負載均衡器單播發(fā)送宣告報文,其中所述宣告報文的目的地址字段包括所述前端負載均衡器的單播地址,目的端口包括所述預設端口,源地址字段包括所述所述后端服務器的單播地址,所述預設端口為指定的所述前端負載均衡器的非系統(tǒng)端口。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,在所述后端服務器接收所述前端負載均衡器周期地向組播組內(nèi)組播發(fā)送的IGMP general query報文的步驟之后,所述方法還包括:
所述后端服務器響應所述IGMP general query報文向所述組播組內(nèi)組播發(fā)送IGMP membership response報文,且在向所述組播組內(nèi)組播發(fā)送IGMP membership response報文之前若接收到所述組播組內(nèi)另一后端服務器向所述組播組組播發(fā)送的IGMP membership response報文,則取消向所述組播組內(nèi)組播發(fā)送IGMP membership response報文。
9.根據(jù)權(quán)利要求7或8所述的方法,其特征在于,所述宣告報文為UDP報文。
10.一種前端負載均衡器,所述前端負載均衡器與至少一個后端服務器設置于一個組播組內(nèi),同一組播組內(nèi)的所述前端負載均衡器和所述后端服務器均設置有相同的組播地址,所述前端負載均衡器設置有可用服務器列表,所述可用服務器列表用于記錄注冊成功的后端服務器的單播地址,所述前端負載均衡器包括:
組播地址設置模塊,用于設置與所述組播組內(nèi)的后端服務器相同的組播地址;
組播查詢發(fā)送模塊,用于向所述組播組內(nèi)的后端服務器組播發(fā)送IGMP general query報文,其中所述IGMP general query報文的組播地址字段攜帶所述前端負載均衡器的單播地址;
單播接收模塊,用于在預設端口監(jiān)聽所述組播組內(nèi)所有后端服務器響應所述送IGMP general query報文分別單播發(fā)送的宣告報文,其中所述宣告報文的目的地址字段包括所述前端負載均衡器的單播地址,目的端口包括所述預設端口,源地址字段包括發(fā)送所述宣告報文的后端服務器的單播地址,所述預設端口為指定的所述前端負載均衡器的非系統(tǒng)端口;
報文解析模塊,用于解析所述宣告報文以獲取所述源地址字段攜帶的后端服務器的單播地址;
注冊模塊,在所述源地址字段攜帶的后端服務器的單播地址沒有記錄在所述可用服務器列表中時,將所述源地址字段攜帶的后端服務器的單播地址記錄在所述可用服務器列表。
11.根據(jù)權(quán)利要求10所述的前端負載均衡器,其特征在于,還包括心跳計時器和計時器設置模塊,
所述計時器設置模塊,用于為所述可用服務器列表中記錄的每一所述單播地址均對應設置一心跳計時器,并為所述源地址字段攜帶的后端服務器的單播地址設置心跳計時器并控制所述心跳計時器開始計時。
12.根據(jù)權(quán)利要求11所述的前端負載均衡器,其特征在于,所述注冊模塊還用于:
在判斷到所述源地址字段攜帶的后端服務器的單播地址記錄在所述可用服務器列表中時,控制所述源地址字段攜帶的后端服務器的單播地址對應的心跳計時器重新計時。
13.根據(jù)權(quán)利要求11或12所述的前端負載均衡器,其特征在于,所述計時器設置模塊還用于:
在所述可用服務器列表中記錄的單播地址對應的心跳計時器的計時值超出預定時間段時,控制所述心跳計時器重新計時,并累計所述心跳計時器的超時次數(shù),在所述超時次數(shù)超出預定次數(shù)時,將與所述心跳計時器對應的單播地址從所述可用服務器列表中移除。
14.根據(jù)權(quán)利要求11至13任一項所述的前端負載均衡器,其特征在于,還包括組播響應接收模塊,
所述組播查詢發(fā)送模塊,還用于在向所述組播組內(nèi)組播發(fā)送IGMP general query報文時開始計時;
所述組播響應接收模塊,用于接收所述組播組內(nèi)最先接收到所述IGMP general query報文的后端服務器響應所述IGMP general query報文向所述組播組組播發(fā)送的IGMP membership response報文;
其中,在所述組播響應接收模塊接收到所述組播組內(nèi)最先接收到所述IGMP general query報文的后端服務器響應所述IGMP general query報文向所述組播組組播發(fā)送的IGMP membership response報文時,所述組播查詢發(fā)送模塊根據(jù)所述IGMP membership response報文確認所述組播組有效,且在計時值超過預定周期后繼續(xù)向所述組播組內(nèi)的后端服務器組播發(fā)送IGMP general query報文;在所述組播響應接收模塊沒有接收到所述IGMP membership response報文時,所述組播查詢發(fā)送模塊確認所述組播組失效,在所述計時值超過所述預定周期后停止繼續(xù)向所述組播組內(nèi)的后端服務器組播發(fā)送IGMP general query報文。
15.根據(jù)權(quán)利要求11至14任一項所述的前端負載均衡器,其特征在于,所述宣告報文為UDP報文。
16.一種后端服務器,包括:
組播地址設置模塊,所述組播地址設置模塊用于設置與前端負載均衡器相同的組播地址;
組播查詢接收模塊,用于接收所述前端負載均衡器周期地向組播組內(nèi)組播發(fā)送的IGMP general query報文,其中所述IGMP general query報文的組播地址字段攜帶所述前端負載均衡器的單播地址;
單播發(fā)送模塊,用于響應所述IGMP general query報文向所述前端負載均衡器單播發(fā)送宣告報文,其中所述宣告報文的目的地址字段包括所述前端負載均衡器的單播地址,目的端口包括所述預設端口,源地址字段包括所述后端服務器的單播地址,所述預設端口為所述組播組預先一致設定的非系統(tǒng)端口。
17.根據(jù)權(quán)利要求16所述的后端服務器,其特征在于,所述宣告報文為UDP報文。
18.根據(jù)權(quán)利要求16或17所述的后端服務器,其特征在于,還包括組播響應發(fā)送模塊,
所述組播響應發(fā)送模塊,用于響應所述IGMP general query報文向所述組播組內(nèi)組播發(fā)送IGMP membership response報文,且在所述組播響應發(fā)送發(fā)送模塊向所述組播組內(nèi)組播發(fā)送IGMP membership response報文之前若所述組播查詢接收模塊接收到所述組播組內(nèi)另一后端服務器向所述組播組組播發(fā)送的IGMP membership response報文,則所述組播響應發(fā)送模塊取消向所述組播組內(nèi)組播發(fā)送IGMP membership response報文。
19.一種前端負載均衡器,其特征在于,包括存儲器、處理器、網(wǎng)絡接口和總線,所述存儲器、所述網(wǎng)絡接口、所述處理器分別與所述總線連接,所述前端負載均衡器與至少一個后端服務器設置于一個組播組內(nèi),同一組播組內(nèi)的所述前端負載均衡器和所述后端服務器均設置有相同的組播地址,所述存儲器存儲有程序指令和可用服務器列表,所述可用服務器列表用于記錄注冊成功的后端服務器的單播地址,所述處理器執(zhí)行所述存儲器中的程序指令以執(zhí)行步驟:
設置與所述組播組內(nèi)的后端服務器相同的組播地址;
控制所述網(wǎng)絡接口向所述組播組內(nèi)的后端服務器組播發(fā)送IGMP general query報文,其中所述IGMP general query報文的組播地址字段攜帶所述前端負載均衡器的單播地址;
控制所述網(wǎng)絡接口在預設端口監(jiān)聽所述組播組內(nèi)所有后端服務器響應所述送IGMP general query報文分別單播發(fā)送的宣告報文,其中所述宣告報文的目的地址字段包括所述前端負載均衡器的單播地址,目的端口包括所述預設端口,源地址字段包括發(fā)送所述宣告報文的后端服務器的單播地址,所述預設端口為指定的所述前端負載均衡器的非系統(tǒng)端口;
解析所述宣告報文以獲取所述源地址字段攜帶的后端服務器的單播地址;
在所述源地址字段攜帶的后端服務器的單播地址沒有記錄在所述可用服務器列表中時,將所述源地址字段攜帶的后端服務器的單播地址記錄在所述可用服務器列表。
20.一種后端服務器,其特征在于,包括存儲器、處理器、網(wǎng)絡接口和總線,所述存儲器、所述網(wǎng)絡接口、所述處理器分別與所述總線連接,所述后端服務器與前端負載均衡器設置于同一個組播組內(nèi),同一組播組內(nèi)的所述前端負載均衡器和所述后端服務器均設置有相同的組播地址,,所述存儲器存儲有程序指令,所述處理器執(zhí)行所述存儲器中的程序指令以執(zhí)行步驟:
控制所述網(wǎng)絡接口接收所述前端負載均衡器向組播組內(nèi)組播發(fā)送的IGMP general query報文,其中所述IGMP general query報文的組播地址字段攜帶所述前端負載均衡器的單播地址;
控制所述網(wǎng)絡接口響應所述IGMP general query報文向所述前端負載均衡器單播發(fā)送宣告報文,其中所述宣告報文的目的地址字段包括所述前端負載均衡器的單播地址,目的端口包括所述預設端口,源地址字段包括所述所述后端服務器的單播地址,所述預設端口為指定的所述前端負載均衡器的非系統(tǒng)端口。