基于負載均衡的分布式數據傳輸方法和系統的制作方法
【技術領域】
[0001]本發明涉及分布式數據傳輸技術領域,尤其涉及一種基于負載均衡的分布式數據傳輸方法和系統。
【背景技術】
[0002]近年來信息技術快速發展,網絡數據量增長非常迅速。同時云計算、物聯網技術的發展也產生了大量的網絡數據。在這些網絡數據中存在著很大一部分數據需要長距離、長時間的網絡傳輸。例如用于數據挖掘的云計算平臺,需要從各個采集點中采集數據并傳輸到云平臺中。基于物聯網的城市交通管理系統則需要實時從城市各個關鍵節點采集數據,并實時對數據進行存儲、合并、處理等操作。
[0003]當前長距離、長時間的網絡數據傳輸主要有兩種,一種就是應用的服務器在網絡中開放接口,用于接收數據,各個外網節點均通過該接口向服務器發送數據;另一種則是使用分布式數據傳輸的方法,通過設置大量的、多層次的中間緩存節點,來對采集到的數據進行匯聚并最終匯集到服務器中。
[0004]近年來隨著互聯網的發展,許多業務應用中均存在著分布式數據傳輸系統,例如物聯網、交通信息管理、網絡監控等。然而這些分布式數據傳輸系統均存在一定的缺點。在這類分布式數據傳輸系統中,數據需要在不同節點間進行傳輸、分流、匯聚等操作。伴隨著節點的增加,出現節點失效、節點負載過大等情況的概率將大大增加,而這些情況都將會導致數據丟失。這些分布式數據傳輸系統只有當其中某個節點出現故障失效后才能發現問題,而這時緩存在該節點的數據則很有可能無法找回。同時這些分布式數據傳輸系統的網絡傳輸速率也是很大的制約因素,當多個上一節節點同時向某個下一節節點并行傳輸數據時,該下一節節點可能無法處理接收數據,從而導致數據丟失。
【發明內容】
[0005]本發明的實施例提供了一種基于負載均衡的分布式數據傳輸方法和系統,以提高分布式數據傳輸系統的數據傳輸的效率。
[0006]本發明提供了如下方案:
[0007]—種基于負載均衡的分布式數據傳輸方法,將分布式數據傳輸系統中的各個傳輸節點分成多個層次,在每個層次中包括多個傳輸節點,在分布式數據傳輸系統中設置一個負載均衡管理節點,所述方法具體包括:
[0008]所述負載均衡管理節點與每個傳輸節點進行數據通信,接收每個傳輸節點發送過來的節點狀態信息;
[0009]所述負載均衡管理節點根據接收到的各個傳輸節點的節點狀態信息,按照設定的負載均衡策略對各個傳輸節點之間的數據傳輸流量進行控制。
[0010]所述負載均衡管理節點與每個傳輸節點進行數據通信,接收每個傳輸節點發送過來的節點狀態信息,包括:
[0011]在分布式數據傳輸系統中的各個傳輸節點中設置心跳模塊,各個傳輸節點實時獲取傳輸節點自身的節點狀態信息;
[0012]各個傳輸節點按照設定的時間間隔通過所述心跳模塊采用遠程過程調用協議向所述負載均衡管理節點發送攜帶所述節點狀態信息的心跳消息,所述負載均衡管理節點通過指定端口接收各個傳輸節點發送過來的心跳消息,獲取所述心跳消息中攜帶的節點狀態信息。
[0013]所述節點狀態信息包括節點網絡流量速率、節點最大帶寬、CPU負載、內存使用量。
[0014]所述負載均衡管理節點根據接收到的各個傳輸節點的節點狀態信息,按照設定的負載均衡策略對各個傳輸節點之間的數據傳輸流量進行控制,包括:
[0015]所述負載均衡管理節點在一定時間內沒有接收到某個傳輸節點發送過來的心跳信息,所述負載均衡管理節點確認所述某個傳輸節點的狀態為失效;
[0016]所述負載均衡管理節點判斷是否存在和所述某個傳輸節點位于同一層次、同一位置單元,并且狀態為有效的其它傳輸節點,如果是,則所述負載均衡管理節點選擇所述位于同一層次、同一位置單元,并且狀態為有效的其它傳輸節點作為所述某個傳輸節點的備用傳輸節點,將發送給所述某個傳輸節點的數據流量導向到所述備用傳輸節點;否則,執行下述處理步驟;
[0017]所述負載均衡管理節點判斷是否存在和所述某個傳輸節點位于同一層次、狀態為有效的其它傳輸節點,如果是,則所述負載均衡管理節點選擇所述位于同一層次、狀態為有效的其它傳輸節點作為所述某個傳輸節點的備用傳輸節點,將發送給所述某個傳輸節點的數據流量導向到所述備用傳輸節點。
[0018]所述負載均衡管理節點根據接收到的各個傳輸節點的節點狀態信息,按照設定的負載均衡策略對各個傳輸節點之間的數據傳輸流量進行控制,包括:
[0019]所述負載均衡管理節點接收到某個傳輸節點發送過來的心跳信息后,獲取該心跳信息中攜帶的節點狀態信息,根據該節點狀態信息判斷某個傳輸節點的CPU使用量超過80%、內存使用量超過80%、緩存數據大小占整個緩存空間大小超過90%和/或網絡帶寬使用量超過90%,則所述負載均衡管理節點確認所述某個傳輸節點的狀態為過載;
[0020]所述負載均衡管理節點判斷是否存在和所述某個傳輸節點位于同一層次、同一位置單元,并且狀態為有效的其它傳輸節點,如果是,則所述負載均衡管理節點選擇所述位于同一層次、同一位置單元,并且狀態為有效的其它傳輸節點作為所述某個傳輸節點的備用傳輸節點,將發送給所述某個傳輸節點的全部或者部分數據流量導向到所述備用傳輸節點;否則,執行下述處理步驟;
[0021]所述負載均衡管理節點判斷是否存在和所述某個傳輸節點位于同一層次、狀態為有效的其它傳輸節點,如果是,則所述負載均衡管理節點選擇所述位于同一層次、狀態為有效的其它傳輸節點作為所述某個傳輸節點的備用傳輸節點,將發送給所述某個傳輸節點的全部或者部分數據流量導向到所述備用傳輸節點。
[0022]所述負載均衡管理節點根據接收到的各個傳輸節點的節點狀態信息,按照設定的負載均衡策略對各個傳輸節點之間的數據傳輸流量進行控制,包括:
[0023]所述負載均衡管理節點接收到某個傳輸節點后續發送過來的心跳信息后,獲取該心跳信息中攜帶的節點狀態信息,根據該節點狀態信息判斷所述某個傳輸節點的狀態為正常,則所述負載均衡管理節點將發送給所述某個傳輸節點的數據流量從所述備用傳輸節點重新導向所述某個傳輸節點。
[0024]—種基于負載均衡的分布式數據傳輸系統,包括:多個傳輸節點和一個負載均衡管理節點,所述各個傳輸節點分成多個層次,在每個層次中包括多個傳輸節點;
[0025]所述的負載均衡管理節點,用于與每個傳輸節點進行數據通信,接收每個傳輸節點發送過來的節點狀態信息,根據接收到的各個傳輸節點的節點狀態信息,按照設定的負載均衡策略對各個傳輸節點之間的數據傳輸流量進行控制。
[0026]所述的傳輸節點,用于設置心跳模塊,實時獲取傳輸節點自身的節點狀態信息;按照設定的時間間隔通過所述心跳模塊采用遠程過程調用協議向所述負載均衡管理節點發送攜帶所述節點狀態信息的心跳消息;
[0027]所述的負載均衡管理節點,用于通過指定端口接收各個傳輸節點發送過來的心跳消息,獲取所述心跳消息中攜帶的節點狀態信息。
[0028]所述的負載均衡管理節點,具體用于在一定時間內沒有接收到某個傳輸節點發送過來的心跳信息,確認所述某個傳輸節點的狀態為失效;
[0029]判斷是否存在和所述某個傳輸節點位于同一層次、同一位置單元,并且狀態為有效的其它傳輸節點,如果是,則選擇所述位于同一層次、同一位置單元,并且狀態為有效的其它傳輸節點作為所述某個傳輸節點的備用傳輸節點,將發送給所述某個傳輸節點的數據流量導向到所述備用傳輸節點;否則,執行下述處理步驟;
[0030]判斷是否存在和所述某個傳輸節點位于同一層次、狀態為有效的其它傳輸節點,如果是,則選擇所述位于同一層次、狀態為有效的其它傳輸節點作為所述某個傳輸節點的備用傳輸節點,將發送給所述某個傳輸節點的數據流量導向到所述備用傳輸節點。
[0031]所述的負載均衡管理節點,具體用于接收到某個傳輸節點發送過來的心跳信息后,獲取該心跳信息中攜帶的節點狀態信息,根據該節點狀態信息判斷某個傳輸節點的CPU使用量超過80%、內存使用量超過80%、緩存數據大小占整個緩存空間大小超過90%和/或網絡帶寬使用量超過90%,則所述負載均衡管理節點確認所述某個傳輸節點的狀態為過載;
[0032]判斷是否存在和所述某個傳輸節點位于同一層次、同一位置單元,并且狀態為有效的其它傳輸節點,如果是,則選擇所述位于同一層次、同一位置單元,并且狀態為有效