TWI777938B - 訊息流量控制方法、裝置及相關系統 - Google Patents
訊息流量控制方法、裝置及相關系統 Download PDFInfo
- Publication number
- TWI777938B TWI777938B TW106102709A TW106102709A TWI777938B TW I777938 B TWI777938 B TW I777938B TW 106102709 A TW106102709 A TW 106102709A TW 106102709 A TW106102709 A TW 106102709A TW I777938 B TWI777938 B TW I777938B
- Authority
- TW
- Taiwan
- Prior art keywords
- node
- flow control
- processing node
- preset
- processing
- Prior art date
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Selective Calling Equipment (AREA)
- Preparation Of Compounds By Using Micro-Organisms (AREA)
- Hardware Redundancy (AREA)
Abstract
本發明公開了一種訊息流量控制方法、裝置及相關系統,其透過對每個處理節點的訊息接收量進行採樣,一旦某個處理節點的實際訊息接收量不在其對應的預設流量閾值區間內,則產生對應的流量控制請求,並根據該流量控制請求調整該處理節點對應的上游資料節點的訊息發送速率,從而實現對任意兩個相鄰上下游資料節點之間的訊息流量的動態控制,相對於現有技術只根據最後一個處理節點的未處理訊息數量來調整資料來源的訊息發送速率的方式,本發明控制精度更高,任意一個處理節點都不會出現訊息積壓或空閒的現象,從而可以減少訊息丟棄量,提高整個資料處理系統的穩定性及處理效率。
Description
本發明關於分散式即時計算技術領域,特別是關於訊息流量控制方法、裝置及相關系統。
現有資料處理系統大多採用流水線式處理方式,如圖1所示拓撲圖,訊息從資料來源S發出後,依照各個處理節點之間的邏輯關係逐步向下游流動;處理節點的總個數及每條流水線上的節點個數根據實際資料處理邏輯而定,圖1僅以A、B和C的三個處理節點為例,箭頭表示訊息流動方向。
正常情況下,處於上游的資料來源或處理節點的訊息發送速率應當與相鄰的下游處理節點的訊息處理速率相匹配;如果因上游節點出現訊息流量高峰和/或下游處理節點的處理能力不夠,導致上游的訊息發送速率大於下游的訊息處理速率,則會造成大量的訊息積壓、處理器壓力增加,甚至導致部分訊息因處理超時而被丟棄,系統實際有效處理能力下降。特別是Storm、Jstorm、Spark streaming等即時計算系統,訊息流量不斷變化,在流量 高峰到來時,要求每個節點都能都能儘快有效的處理接收到的訊息,否則將影響其他正常運行的節點或計算任務。
相關技術中採用如下流量控制策略:在資料來源配置一個流控值R0,表徵系統允許的未完成訊息數量,在系統運行過程中,根據流水線中最後一個處理節點的訊息處理情況確定實際未完成訊息數量R,如果R>R0,說明訊息流量過大,則控制資料來源減少訊息發送數量;反之,如果R<R0,說明訊息流量過小,則控制資料來源增加訊息發送數量。上述流量控制策略在實際應用中存在較嚴重的弊端;例如:如果上述流控值配置的太高,訊息丟棄量過高,仍然會造成系統的不穩定,但是流控值配置的太低時,又會造成計算資源的空閒。
為了解決上述技術問題,本發明公開了一種訊息流量控制方法、裝置及相關系統。
本發明第一態樣提供了一種訊息流量控制方法,所述方法應用於資料處理系統,所述資料處理系統包括資料來源和多個處理節點;所述方法包括:分別對每個處理節點的訊息接收量進行採樣,並根據採樣結果判斷對應處理節點的實際訊息接收量是否在其預設流量閾值區間內;在根據第一處理節點對應的採樣結果判定所述第一處理節點的實際訊息接收量不在其預設流量閾值區 間內時,產生對應的流量控制請求;根據所述流量控制請求調整與所述第一處理節點相鄰的上游資料節點的訊息發送速率;其中,所述上游資料節點可以為所述資料來源或者處理節點。
結合第一態樣,在第一態樣第一種可行的實施方式中,在根據第一處理節點對應的採樣結果判定所述第一處理節點的實際訊息接收量不在預設流量閾值區間內時,產生對應的流量控制請求,包括:在根據第一處理節點對應的採樣結果判定所述第一處理節點的實際訊息接收量大於預設最高流量閾值時,產生流量降低請求;在根據第一處理節點對應的採樣結果判定所述第一處理節點的實際訊息接收量小於預設最低流量閾值時,產生流量升高請求。
結合第一態樣第一種可行的實施方式,在第一態樣第二種可行的實施方式中,根據所述流量控制請求調整與所述第一處理節點相鄰的上游資料節點的訊息發送速率,包括:在所述流量控制請求為所述流量降低請求時,根據所述第一處理節點的訊息處理速率和所述上游資料節點的原始訊息發送速率確定訊息發送延遲時間;將所述訊息發送延遲時間與所述原始訊息發送速率進行疊加,得到所述上游資料節點的目標訊息發送速率。
結合第一態樣第一種可行的實施方式,在第一態樣第三種可行的實施方式中,根據所述流量控制請求調整與所述第一處理節點相鄰的上游資料節點的訊息發送速率,包括:在所述流量控制請求為所述流量升高請求時,根據預設速率調整步長逐步提高所述上游資料節點的訊息發送速率至預設正常速率。
結合第一態樣,或者第一態樣第一種可行的實施方式,或者第一態樣第二種可行的實施方式,或者第一態樣第三種可行的實施方式,在第一態樣第四種可行的實施方式中,在根據所述流量控制請求調整與所述第一處理節點相鄰的上游資料節點的訊息發送速率之前,所述方法還包括:如果在預設時段內所述上游資料節點對應的多個下游處理節點均產生對應的流量控制請求,則確定每個下游處理節點對應的流量控制請求對所述上游資料節點造成的訊息發送速率變化量;確定訊息發送速率變化量最大值對應的目標流量控制請求,以根據所述目標流量控制請求調整所述上游資料節點的訊息發送速率。
結合第一態樣,或者第一態樣第一種可行的實施方式,或者第一態樣第二種可行的實施方式,或者第一態樣第三種可行的實施方式,在第一態樣第五種可行的實施方式中,所述方法還包括: 將各個處理節點的流量控制狀態儲存至預設儲存模組;根據預設週期將所述預設儲存模組儲存的所述流量控制狀態同步至對應的處理節點。
結合第一態樣,或者第一態樣第一種可行的實施方式,或者第一態樣第二種可行的實施方式,或者第一態樣第三種可行的實施方式,在第一態樣第六種可行的實施方式中,根據採樣結果判斷對應處理節點的實際訊息接收量是否滿足在其預設流量閾值區間內,包括:對於任一處理節點,計算預設採樣週期內採集到的不在其預設流量閾值區間內的採樣值個數與所述預設採樣週期內的採樣值總個數之間的比值;如果所述比值大於預設閾值,則判定對應處理節點的實際訊息接收量不在其預設流量閾值區間內。
本發明第二態樣提供了一種訊息流量控制裝置,所述裝置應用於資料處理系統,所述資料處理系統包括資料來源和多個處理節點;所述裝置包括:觸發器和控制器;所述觸發器設置於每個處理節點中,用於對自身所在處理節點的訊息接收量進行採樣,並根據採樣結果判斷自身所在處理節點的實際訊息接收量是否在其預設流量閾值區間內,並在自身所在處理節點的實際訊息接收量不在其預設流量閾值區間內時,產生對應的流量控制請求; 所述控制器設置於每個具有下游處理節點的資料節點中,用於根據自身所在資料節點對應的下游處理節點的流量控制請求,調整自身所在資料節點的訊息發送速率;其中,所述資料節點可以為所述資料來源或者處理節點。
結合第二態樣,在第二態樣第一種可行的實施方式中,為實現在自身所在處理節點的實際訊息接收量不在其預設流量閾值區間內時,產生對應的流量控制請求,所述觸發器被配置為:在自身所在處理節點的實際訊息接收量大於預設最高流量閾值時,產生流量降低請求;在自身所在處理節點的實際訊息接收量大於預設最低流量閾值時,產生流量升高請求。
結合第二態樣第一種可行的實施方式,在第二態樣第二種可行的實施方式中,為實現根據自身所在資料節點對應的下游處理節點的流量控制請求,調整自身所在資料節點的訊息發送速率,所述控制器被配置為:在所述流量控制請求為所述流量降低請求時,根據所述下游處理節點的訊息處理速率,以及自身所在資料節點的原始訊息發送速率確定訊息發送延遲時間,並將所述訊息發送延遲時間與所述原始訊息發送速率進行疊加,得到自身所在資料節點的目標訊息發送速率。
結合第二態樣第一種可行的實施方式,在第二態樣第三種可行的實施方式中,為實現根據自身所在資 料節點對應的下游處理節點的流量控制請求,調整自身所在資料節點的訊息發送速率,所述控制器被配置為:在所述流量控制請求為所述流量升高請求時,根據預設速率調整步長逐步提高自身所在資料節點的訊息發送速率至預設正常速率。
結合第二態樣,或者第二態樣第一種可行的實施方式,或者第二態樣第二種可行的實施方式,或者第二態樣第三種可行的實施方式,在第二態樣第四種可行的實施方式中,所述裝置還包括:第一協調器;所述第一協調器與各個處理節點並列設置於所述資料處理系統中,用於獲取所述觸發器發送的流量控制請求,並將所述流量控制請求轉發至對應上游資料節點的控制器;其中,如果所述第一協調器在預設時段內獲取到多條向同一上游資料節點的控制器發送的流量控制請求,則所述第一協調器確定每條流量控制請求對所述同一上游資料節點造成的訊息發送速率變化量,並將訊息發送速率變化量最大值對應的流量控制請求發送至所述同一上游資料節點的控制器。
結合第二態樣,或者第二態樣第一種可行的實施方式,或者第二態樣第二種可行的實施方式,或者第二態樣第三種可行的實施方式,在第二態樣第五種可行的實施方式中,所述裝置還包括:第二協調器;所述第二協調器與各個處理節點並列設置於 所述資料處理系統中,用於將各個處理節點的流量控制狀態儲存至預設儲存模組,並根據預設週期將所述預設儲存模組儲存的所述流量控制狀態同步至對應的處理節點。
結合第二態樣,或者第二態樣第一種可行的實施方式,或者第二態樣第二種可行的實施方式,或者第二態樣第三種可行的實施方式,在第二態樣第六種可行的實施方式中,為實現根據採樣結果判斷自身所在處理節點的實際訊息接收量是否滿足在其預設流量閾值區間內,所述觸發器被配置為:計算預設採樣週期內採集到的不在其預設流量閾值範圍內的採樣值個數與所述預設採樣週期內的採樣值總個數之間的比值,並在所述比值大於預設閾值時,判定自身所在處理節點的實際訊息接收量不在其預設流量閾值區間內。
本發明協力廠商面提供一種資料處理系統,該系統包括資料來源、多個處理節點,以及上述任一種訊息流量控制裝置。
由以上技術方案可知,本發明實施例透過對每個處理節點的訊息接收量進行採樣,一旦某個處理節點的實際訊息接收量不在其對應的預設流量閾值區間內,則產生對應的流量控制請求,並根據該流量控制請求調整該處理節點對應的上游資料節點的訊息發送速率,從而可以實現對任意兩個相鄰上下游資料節點之間的訊息流量的動態控制,相對於現有技術只根據最後一個處理節點的未處 理訊息數量來調整資料來源的訊息發送速率的方式,本發明控制精度更高,任意一個處理節點都不會出現訊息積壓或空閒的現象,從而可以減少訊息丟棄量,提高整個資料處理系統的穩定性及處理效率。
510‧‧‧上游資料節點
512‧‧‧控制器
520‧‧‧下游資料節點
521‧‧‧觸發器
A‧‧‧處理節點
B‧‧‧處理節點
C‧‧‧處理節點
C_A‧‧‧控制器
C_S‧‧‧控制器
K‧‧‧協調器
S‧‧‧資料來源
T_A‧‧‧觸發器
T_B‧‧‧觸發器
T_C‧‧‧協調服務模組
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,對於本領域普通技術人員而言,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為現有資料處理系統的一種拓撲結構圖;圖2為本發明實施例提供的一種訊息流量控制方法的流程圖;圖3為本發明實施例提供的一種資料處理系統的拓撲結構圖;圖4為本發明實施例提供的基於圖3所示拓撲結構的訊息流量控制方法的信號流圖;圖5為本發明實施例提供的訊息流量控制裝置的工作原理示意圖;圖6為本發明實施例提供的另一種資料處理系統的拓撲結構圖。
這裡將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述關於附圖時,除非另有表示,不同附圖中的相同數字表示相同或相似的要素。以下示例性實施例中所描述的實施方式並不代表與本發明相一致的所有實施方式。相反,它們僅是與如所附申請專利範圍中所詳述的、本發明的一些態樣相一致的裝置和方法的例子。
首先對本發明提供的訊息流量控制方法的實施例進行說明。該方法可以應用於任一包括資料來源和多個處理節點的流水線式資料處理系統,例如Storm、Jstorm、Spark streaming等即時計算系統,以調節流水線中各個節點之間的訊息流量,實現資料來源及任一處理節點的訊息發送速率與對應下游處理節點的訊息處理速率相匹配。
圖2為本發明一個實施例提供的訊息流.量控制方法的流程圖;參照圖2,該方法包括如下步驟。
S11、分別對每個處理節點的訊息接收量進行採樣,並根據採樣結果判斷對應處理節點的實際訊息接收量是否在其預設流量閾值區間內。
由於資料處理流水線中各個處理節點的處理能力及需要處理的訊息數量(即該處理節點的負載)不盡相同,本實施例預先針對每個處理節點分別設置對應的預設流量閾值區間;以圖1所示拓撲圖為例,需要採樣的節 點包括所有的三個處理節點,根據節點的處理能力及其負載,設置處理節點A對應的預設流量閾值區間為[A1,B1],處理節點B對應的預設流量閾值區間為[A2,B2],處理節點C對應的預設流量閾值區間為[A3,B3]。
在系統運行過程中,分別採樣每個處理節點的訊息接收量,即對應處理節點的負載,並分別根據各個處理節點的採樣結果判斷該處理節點的實際訊息接收量是否在其預設流量閾值區間內。仍以圖1為例,根據處理節點A的採樣結果判斷處理節點A的實際訊息接收量是否在處理節點A的對應的區間[A1,B1]內,對應的,根據處理節點B的採樣結果判斷處理節點B的實際訊息接收量是否在區間[A2,B2]內,依此類推。也即,透過步驟S11檢測每個處理節點的負載和其處理能力是否相匹配。
S12、在根據第一處理節點對應的採樣結果判定所述第一處理節點的實際訊息接收量不在其預設流量閾值區間內時,產生對應的流量控制請求。
S13、根據所述流量控制請求調整與所述第一處理節點相鄰的上游資料節點的訊息發送速率。
本實施例在檢測到任一處理節點的實際訊息接收量不在其對應的預設流量閾值區間內,也即該處理節點的負載與其處理能力不匹配時,產生對應的流量控制請求,並根據該流量控制請求調整該處理節點對應的上游資料節點的訊息發送速率。
其中,根據各個處理節點在流水線中所處的 位置不同,所述上游資料節點可能為資料來源,也可能為處理節點。以圖1為例,對於資料來源和處理節點A兩個節點,處理節點A相當於上述第一處理節點,資料來源S相當於上述上游資料節點;而對於處理節點A和處理節點B兩個節點,處理節點B相當於上述第一處理節點,處理節點A相當於上述上游資料節點。
由以上技術方案可知,本發明實施例透過對每個處理節點的訊息接收量進行採樣,一旦某個處理節點的實際訊息接收量不在其對應的預設流量閾值區間內,則產生對應的流量控制請求,並根據該流量控制請求調整該處理節點對應的上游資料節點的訊息發送速率,從而可以實現對任意兩個相鄰上下游資料節點之間的訊息流量的動態控制,相對於現有技術只根據最後一個處理節點的未處理訊息數量來調整資料來源的訊息發送速率的方式,本發明控制精度更高,任意一個處理節點都不會出現訊息積壓或空閒的現象,減少訊息丟棄量,提高整個資料處理系統的穩定性及處理效率。
在本發明一個可行的實施例中,可以在資料處理系統的各個處理節點分別設置觸發器,透過該觸發器執行上述步驟S11和S12,同時,在資料來源及各個處理節點中設置控制器,透過該控制器執行上述步驟S13。仍以圖1為例,在本發明實施例中,在資料來源S中設置控制器C_S,在處理節點A中設置觸發器T_A和控制器C_A,在處理節點B中設置觸發器T_B,在處理節點C中 設置觸發器T_C,如圖3所示。圖3中實線箭頭表示各個節點之間的訊息傳輸方向,虛線箭頭表示各個節點之間的流量控制請求傳輸方向。需要說明的是,在圖3所示系統中,由於處理節點B和C的下游無其他處理節點,不需要發送訊息,故處理節點B和C中可以不設置對應的控制器,在其他實施例中,如果處理節點B和C的下游還存在其他處理節點,則可以在處理節點B和C中增設對應的控制器。基於圖3所示系統,各節點間訊息流量控制過程如圖4所示。
參照圖3和4,對於資料來源和處理節點A兩個節點,處理節點A相當於上述第一處理節點,資料來源S相當於上述上游資料節點,則:在步驟S111中,觸發器T_A對處理節點A的訊息接收量進行採樣,並根據採樣結果判斷其實際訊息接收量是否在對應的預設流量閾值區間[A1,B1]內;在步驟S121中,觸發器T_A在判定處理節點A的實際訊息接收量不在[A1,B1]內(大於B1,或者小於A1)時,也即處理節點A的負載和處理能力不匹配,則產生流量控制請求,並將其發送至資料來源S;在步驟S131中,控制器C_S根據觸發器T_A發送的流量控制請求調整資料來源S的訊息發送速率。透過上述步驟S111、S121和S131使得單位時間內發送至處理節點A的訊息數量,也即單位時間內處理節點A的實際訊息接收量,可以與處理節點A的訊息處理數量相匹 配,既可以避免資料來源S的訊息發送速率過大時,訊息在處理節點A中積壓,也可以避免資料來源S的訊息發送速率過小時,處理節點A空閒。
對應的,對於處理節點A和處理節點B兩個節點,處理節點B相當於上述第一處理節點,處理節點A相當於上述上游資料節點,則:在步驟S112中,觸發器T_B對處理節點B的訊息接收量進行採樣,並根據採樣結果判斷其實際訊息接收量是否在對應的預設流量閾值區間[A2,B2]內;在步驟S122中,觸發器T_B在判定處理節點B的實際訊息接收量不在[A2,B2]內時,則產生流量控制請求,並將其發送至處理節點A;在步驟S132中,控制器C_A根據觸發器T_B發送的流量控制請求調整處理節點A向處理節點B發送訊息時的訊息發送速率。即,透過上述步驟S112、S122和S132使得單位時間內處理節點B的實際訊息接收量與訊息處理數量相匹配。
對於處理節點A和處理節點C兩個節點,其訊息流量控制過程與上述步驟S112、S122和S132類似,本文不再贅述。
在本發明一個可行的實施例中,上述步驟S11所述的根據採樣結果判斷對應處理節點的實際訊息接收量是否滿足在其預設流量閾值區間內,具體包括以下步驟:對於任一處理節點,計算預設採樣週期內採 集到的不在其預設流量閾值區間內的採樣值個數與所述預設採樣週期內的採樣值總個數之間的比值;如果所述比值大於預設閾值,則判定對應處理節點的實際訊息接收量不在其預設流量閾值區間內。
相對於針對每個不在其預設流量閾值區間內的採樣值產生一條流量控制請求,上述實施例在一個預設採樣週期內超出預設流量閾值區間的採樣值所占的比例大於預設閾值時,才產生流量控制請求,啟動對上游資料節點的訊息發送速率的調整,可以避免頻繁調整導致系統抖動、處理能力下降等問題。
在本發明一個可行的實施例中,上述步驟S12所述的根據第一處理節點對應的採樣結果判定所述第一處理節點的實際訊息接收量不在預設流量閾值區間內時,產生對應的流量控制請求,具體可以包括以下兩種情況:在根據第一處理節點對應的採樣結果判定所述第一處理節點的實際訊息接收量大於預設最高流量閾值時,產生流量降低請求;在根據第一處理節點對應的採樣結果判定所述第一處理節點的實際訊息接收量小於預設最低流量閾值時,產生流量升高請求。
即,在系統流量高峰時段內,某個處理節點的實際訊息接收量大於預設最高流量閾值,則產生流量降低請求,以控制其上游資料節點降低訊息發送速率;隨著上游資料節點的訊息發送速率的降低,該處理節點的實際 訊息接收量也降低,當其降低至預設最低流量閾值以下時,產生流量升高請求,以停止對上游資料節點的訊息發送速率的降低控制,使其訊息發送速率逐步升高,直到恢復至正常值。
在本發明一個可行的實施例中,上述流量控制請求中不僅包括用於指示上游資料節點升高或降低訊息發送速率的資訊,還包括產生該流量控制請求的處理節點的訊息處理速率;對應的,當流量控制請求為上述流量降低請求時,上述步驟S13所述的調整上游資料節點的訊息發送速率的方法為:在所述流量控制請求為所述流量降低請求時,根據所述第一處理節點的訊息處理速率和所述上游資料節點的原始訊息發送速率確定訊息發送延遲時間;將所述訊息發送延遲時間與所述原始訊息發送速率進行疊加,得到所述上游資料節點的目標訊息發送速率。
具體的,假設上述流量降低請求中包含第一處理節點的訊息處理速率為TPS_DownStream,對應上游資料節點的原始訊息發送速率為TPS_UpStream,由於流量控制請求為流量降低請求,可以推斷UpStream_TPS>TPS_DownStream,故需要在上游節點發送訊息時延遲一段時間T_delay(即上述訊息發送延遲時間),以降低UpStream_TPS;可以採用如下公式計算訊息發送延遲時間T_delay: T_delay=1/TPS_DownStream-1/UpStream_TPS。
將上述T_delay與UpStream_TPS疊加可以得到調整後的訊息發送速率,也即上述目標訊息發送速率UpStream_TPS’;疊加計算公式可以為:UpStream_TPS’=1/[(1/UpStream_TPS)+T_delay]。
另外,在實際的應用中,由於網路或者其他中間環節對訊息發送速率或者訊息處理速率有一定的影響,導致上游資料節點在應用調整後的訊息發送速率後,仍然收到下游處理節點的流量控制請求,故在本發明其他實施例中,還可以對在訊息發送延遲時間進行微調,即在T_delay的基礎上增加最小延遲單位T_min_adjust(可以為1毫秒)的微調,即:T_delay=1/TPS_DownStream-1/UpStream_TPS+T_min_adjust。
在本發明另一個可行的實施例中,當所述流量控制請求為所述流量升高請求時,上述步驟S13所述的調整上游資料節點的訊息發送速率的方法為:根據預設速率調整步長逐步提高所述上游資料節點的訊息發送速率至預設正常速率。
即在收到流量升高請求時,逐步提高上游資料節點的訊息發送速率,而不是一次性恢復至預設正常速率;相對於上述基於訊息發送延遲時間T_delay的調整方式,在收到流量升高請求時,逐步減小T_delay的取值直至0,UpStream_TPS’也隨之逐步提高至UpStream_TPS。採用這種逐步提高訊息發送速率的方式,可以避免訊息積 壓,保證系統的穩定。
另外,在根據所述流量升高請求將上游資料節點的的訊息發送速率恢復至預設正常速率時,可以向對應的下游處理節點回饋回應資訊,以通知下游處理節點控制結束;對應的,下游處理節點在接收到該回應資訊後,不再發送請求,但仍然透過採樣檢測自身的實際訊息接收量是否在預設流量閾值區間內。
在本發明一個可行的實施例中,步驟S12產生的流量控制請求可以直接由第一處理節點發送至對應的上游資料節點;在本發明另一個可行的實施例中,所述流量控制請求還可以透過一個獨立節點對流量控制請求進行轉發,該獨立節點接收各個處理節點的流量控制請求,確定其對應的上游資料節點,並將該流量控制請求轉發至該上游資料節點。可選的,基於上文實施例所述的在節點中設置觸發器及控制器,本實施例所述的獨立節點可以為設置於系統中的協調器。
實際應用中,某個上游資料節點可能存在多個下游處理節點,則透過上述獨立節點接收並轉發流量控制請求的過程中,在同一檢測時段內,可能多個下游處理節點都檢測到自身的實際訊息接收量不在預設流量閾值區間內,從而都對應產生流量控制請求,如果分別依據每個下游處理節點的流量控制請求對該上游資料節點的訊息發送速率進行調整,則需要調整多次,不僅工作量大,還可能因頻繁調整導致系統不穩地。
有鑑於此,,在本發明一個可行的實施例中可以對發向同一上游資料節點的多條流量控制請求進行篩選,即,在根據所述流量控制請求調整與所述第一處理節點相鄰的上游資料節點的訊息發送速率(步驟S13)之前,上述訊息流量控制方法還可以包括如下步驟:S14、如果在預設時段內所述上游資料節點對應的多個下游處理節點均產生對應的流量控制請求,則確定每個下游處理節點對應的流量控制請求對所述上游資料節點造成的訊息發送速率變化量;S15、確定訊息發送速率變化量最大值對應的目標流量控制請求,以根據所述目標流量控制請求調整所述上游資料節點的訊息發送速率。
參照圖1或圖3所示系統,處理節點A存在兩個下游處理節點,即處理節點B和處理節點C,則可能出現在同一個檢測時段內,處理節點B和處理節點C都檢測到自身的實際訊息接收量不在預設流量閾值區間內,都產生流量控制請求;對於這兩條流量控制請求,透過計算比較,選出對處理節點A造成的訊息發送速率變化量最大的一條流量控制請求,並根據選出的流量控制請求來調整處理節點A的訊息發送速率。
較佳的,可以透過上文所述的訊息發送延遲時間T_delay衡量流量控制請求對對應處理節點造成的訊息發送速率變化量大小。
上述實施例在同一上游資料節點收到多條流 量控制請求,根據各條流量控制請求對該上游資料節點的訊息發送速率造成的變化量大小進行篩選出一條流量控制請求,用於調整上游資料節點的訊息發送速率,從而可以減少調整次數,既可以減少流量控制的工作量,又可以避免短時間內頻繁調整導致的系統抖動,提高系統的穩定性。
較佳的,可以透過上文實施例所述的協調器執行上述步驟S14和S15,並將步驟S15確定的目標流量控制請求發送至對應上游資料節點的控制器,以避免篩選過程對上游資料節點的記憶體等資源的佔用。
在本發明一個可行的實施例中,上述訊息流量控制方法還可以包括如下步驟:S16、將各個處理節點的流量控制狀態儲存至預設儲存模組;S17、根據預設週期將所述預設儲存模組儲存的所述流量控制狀態同步至對應的處理節點。
以Storm、Jstorm等即時計算系統為例,上述預設儲存模組可以為即時計算系統外部的協調伺服器,如ZooKeeper。對應於上文所述的兩種流量控制請求,即流量降低請求和流量升高請求,所述流量控制狀態至少包括兩種:對於任一處理節點,如果其接收到流量降低請求,則其對應的流量控制狀態為降流控制狀態(即該處理節點以低於預設值的訊息發送速率向下游處理節點發送訊息);如果其接收到流量升高請求或未接收到任何流量控 制請求,則其對應的流量控制狀態為無控制狀態(即該處理節點以預設的訊息發送速率向下游處理節點發送訊息)。
以上技術方案中,透過對各個處理節點的流量控制狀態的即時儲存並定期同步,可以保證處理節點在失效重啟後,仍然可以處於正確的流量控制狀態下,進而保證系統的穩定性。
較佳的,上述步驟S16和S17也可以透過上文所述的協調器執行。
與上述訊息流量控制方法的實施例相對應,本發明實施例還提供了一種應用於流水線式資料處理系統的訊息流量控制裝置,且該流水線式資料處理系統包括資料來源和多個處理節點;為便於描述,下文將所述資料來源和各個處理節點統稱為資料節點。所述訊息流量控制裝置包括:分別設置於所述每個處理節點中的觸發器,和分別設置於每個具有下游處理節點的資料節點中的控制器。設置有上述訊息流量控制裝置的資料處理系統的拓撲結構可參照圖3。
其中,所述觸發器用於,對自身所在處理節點的訊息接收量進行採樣,並根據採樣結果判斷自身所在處理節點的實際訊息接收量是否在其預設流量閾值區間內,並在自身所在處理節點的實際訊息接收量不在其預設流量閾值區間內時,產生對應的流量控制請求。
所述控制器用於,根據自身所在資料節點對 應的下游處理節點的流量控制請求,調整自身所在資料節點的訊息發送速率。
具體的,如圖5所示的設置有訊息流量控制裝置的資料處理系統中任意一個上游資料節點510和與其相鄰的一個下游資料節點520結構方塊圖;其中,一種具體情況下,該上游資料節點510和下游資料節點520都為處理節點,另一種具體情況下,該上游資料節點510為資料來源,下游資料節點520為處理節點。圖5中的虛線方塊及虛線箭頭表示在一種情況下存在,另一種情況下不存在的結構及資訊流向。
基於該上游資料節點510和下游資料節點520,上述訊息流量控制裝置的工作過程如下:下游資料節點520的觸發器521對該下游資料節點520的訊息接收量進行採樣,並根據採樣結果判斷下游資料節點520的實際訊息接收量是否在下游資料節點520的預設流量閾值區間內,如果不在,則產生對應的流量控制請求,並將該流量控制請求發送至上游資料節點510的控制器512;控制器512在接收到觸發器521發送的流量控制請求後,根據該流量控制請求調整上游資料節點510的訊息發送速率,從而可以將下游資料節點520的實際訊息接收量控制在下游資料節點520的預設流量閾值區間內。
由以上技術方案可知,本發明實施例透過對每個處理節點的訊息接收量進行採樣,一旦某個處理節點的實際訊息接收量不在其對應的預設流量閾值區間內,則 產生對應的流量控制請求,並根據該流量控制請求調整該處理節點對應的上游資料節點的訊息發送速率,從而可以實現對任意兩個相鄰上下游資料節點之間的訊息流量的動態控制,相對於現有技術只根據最後一個處理節點的未處理訊息數量來調整資料來源的訊息發送速率的方式,本發明控制精度更高,任意一個處理節點都不會出現訊息積壓或空閒的現象,減少訊息丟棄量,提高整個資料處理系統的穩定性及處理效率。
在本發明一個可行的實施例中,為實現根據採樣結果判斷自身所在處理節點的實際訊息接收量是否滿足在其預設流量閾值區間內,上述觸發器可以被配置為:計算預設採樣週期內採集到的不在其預設流量閾值範圍內的採樣值個數與所述預設採樣週期內的採樣值總個數之間的比值,並在所述比值大於預設閾值時,判定自身所在處理節點的實際訊息接收量不在其預設流量閾值區間內。
基於以上技術方案,相對於針對每個不在其預設流量閾值區間內的採樣值產生一條流量控制請求,上述實施例在一個預設採樣週期內超出預設流量閾值區間的採樣值所占的比例大於預設閾值時,才產生流量控制請求,啟動對上游資料節點的訊息發送速率的調整,可以避免頻繁調整導致系統抖動、處理能力下降等問題。
在本發明一個可行的實施例中,為實現在自身所在處理節點的實際訊息接收量不在其預設流量閾值區間內時,產生對應的流量控制請求,上述觸發器可以被配 置為:在自身所在處理節點的實際訊息接收量大於預設最高流量閾值時,產生流量降低請求;在自身所在處理節點的實際訊息接收量大於預設最低流量閾值時,產生流量升高請求。
在本發明一個可行的實施例中,為實現根據自身所在資料節點對應的下游處理節點的流量控制請求,調整自身所在資料節點的訊息發送速率,上述控制器可以被配置為:在所述流量控制請求為所述流量降低請求時,根據所述下游處理節點的訊息處理速率,以及自身所在資料節點的原始訊息發送速率確定訊息發送延遲時間,並將所述訊息發送延遲時間與所述原始訊息發送速率進行疊加,得到自身所在資料節點的目標訊息發送速率。
在本發明另一個可行的實施例中,為實現根據自身所在資料節點對應的下游處理節點的流量控制請求,調整自身所在資料節點的訊息發送速率,上述控制器可以被配置為:在所述流量控制請求為所述流量升高請求時,根據預設速率調整步長逐步提高自身所在資料節點的訊息發送速率至預設正常速率。
除上述觸發器和控制器外,本發明提供的訊息流量控制裝置還可以包括協調器,該協調器與各個處理節點並列設置於所述資料處理系統中,該協調器用於獲取各個觸發器產生的流量控制請求,並將所述流量控制請求 轉發至對應的上游資料節點。
圖6為在圖3所示設置有訊息流量控制裝置的系統拓撲結構上增設協調器後的拓撲結構圖。參照圖6,協調器K分別獲取觸發器T_A、觸發器T_B和觸發器T_C的流量控制請求,並將觸發器T_A的流量控制請求轉發至資料來源S的控制器C_S,將觸發器T_B和觸發器T_C的流量控制請求分別轉發至處理節點A的控制器C_A。
在本發明一個可行的實施例中,上述協調器具體可以被配置為:在預設時段內獲取到多條向同一上游資料節點的控制器發送的流量控制請求,則所述第一協調器確定每條流量控制請求對所述同一上游資料節點造成的訊息發送速率變化量,並將訊息發送速率變化量最大值對應的流量控制請求發送至所述同一上游資料節點的控制器。
仍參照上圖6,在預設時段內協調器K既獲取到觸發器T_B的流量控制請求Q_B,又獲取到觸發器T_C的流量控制請求Q_C,為減少對其共同的上游處理節點A的訊息發送速率調整次數,保證系統的穩定,協調器K分別確定流量控制請求Q_B和Q_C對處理節點A造成的訊息發送速率變化量,並選出訊息發送速率變化量較大的流量控制請求,假設為流量控制請求Q_B,則協調器K只將流量控制請求Q_B轉發至控制器C_A,將流量控制請求Q_C丟棄;對應的,控制器C_A只需根據流量控制 請求Q_B調整處理節點A的訊息發送速率。
在本發明另一個可行的實施例中,上述協調器還被配置為:將各個處理節點的流量控制狀態儲存至預設儲存模組,並根據預設週期將所述預設儲存模組儲存的所述流量控制狀態同步至對應的處理節點;從而可以保證處理節點在失效重啟後,仍然可以處於正確的流量控制狀態下,進而保證系統的穩定性。
另外,本發明實施例還提供了一種資料處理系統,該系統包括包括資料來源、多個處理節點,以及上文任一實施例所述的訊息流量控制裝置。該系統的結構圖可以參照圖3和圖6所示,其流量控制過程可參照上文方法及裝置實施例,本文不再贅述。
本說明書中的各個實施例均採用漸進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對於裝置和系統實施例而言,由於其基本相似於方法實施例,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
以上所述的本發明實施方式,並不構成對本發明保護範圍的限定。任何在本發明的精神和原則之內所作的修改、等同替換和改進等,均應包含在本發明的保護範圍之內。
Claims (13)
- 一種訊息流量控制方法,其特徵在於,應用於資料處理系統,該資料處理系統包括資料來源和多個處理節點;該方法包括:分別對每個處理節點的訊息接收量進行採樣,並根據採樣結果判斷對應處理節點的實際訊息接收量是否在其預設流量閾值區間內;在根據第一處理節點對應的採樣結果判定該第一處理節點的實際訊息接收量不在其預設流量閾值區間內時,產生對應的流量控制請求;根據該流量控制請求調整與該第一處理節點相鄰的上游資料節點的訊息發送速率;其中,該上游資料節點可以為該資料來源或者處理節點;將各個處理節點的流量控制狀態儲存至預設儲存模組;根據預設週期將該預設儲存模組儲存的該流量控制狀態同步至對應的處理節點。
- 根據請求項1所述的方法,其中,在根據該第一處理節點對應的採樣結果判定該第一處理節點的實際訊息接收量不在其預設流量閾值區間內時,產生對應的流量控制請求,包括:在根據第一處理節點對應的採樣結果判定該第一處理節點的實際訊息接收量大於預設最高流量閾值時,產生流 量降低請求;在根據第一處理節點對應的採樣結果判定該第一處理節點的實際訊息接收量小於預設最低流量閾值時,產生流量升高請求。
- 根據請求項2所述的方法,其中,根據該流量控制請求調整與該第一處理節點相鄰的上游資料節點的該訊息發送速率,包括:在該流量控制請求為該流量降低請求時,根據該第一處理節點的訊息處理速率和該上游資料節點的原始訊息發送速率確定訊息發送延遲時間;將該訊息發送延遲時間與該原始訊息發送速率進行疊加,得到該上游資料節點的目標訊息發送速率。
- 根據請求項2所述的方法,其中,根據該流量控制請求調整與該第一處理節點相鄰的上游資料節點的訊息發送速率,包括:在該流量控制請求為該流量升高請求時,根據預設速率調整步長逐步提高該上游資料節點的訊息發送速率至預設正常速率。
- 根據請求項1至4之任一項所述的方法,其中,在根據該流量控制請求調整與該第一處理節點相鄰的上游資料節點的訊息發送速率之前,該方法還包括:如果在預設時段內該上游資料節點對應的多個下游處理節點均產生對應的流量控制請求,則確定每個下游處理 節點對應的流量控制請求對該上游資料節點造成的訊息發送速率變化量;確定訊息發送速率變化量最大值對應的目標流量控制請求,以根據該目標流量控制請求調整該上游資料節點的訊息發送速率。
- 根據請求項1至4之任一項所述的方法,其中,根據採樣結果判斷對應處理節點的實際訊息接收量是否滿足在其預設流量閾值區間內,包括:對於任一處理節點,計算預設採樣週期內採集到的不在其預設流量閾值區間內的採樣值個數與實際預設採樣週期內的採樣值總個數之間的比值;如果實際比值大於預設閾值,則判定對應處理節點的實際訊息接收量不在其預設流量閾值區間內。
- 一種訊息流量控制裝置,其特徵在於,應用於資料處理系統,該資料處理系統包括資料來源和多個處理節點;該裝置包括:觸發器和控制器;該觸發器設置於每個處理節點中,用於對自身所在處理節點的訊息接收量進行採樣,並根據採樣結果判斷自身所在處理節點的實際訊息接收量是否在其預設流量閾值區間內,並在自身所在處理節點的實際訊息接收量不在其預設流量閾值區間內時,產生對應的流量控制請求;該控制器設置於每個具有下游處理節點的資料節點中,用於根據自身所在資料節點對應的下游處理節點的流 量控制請求,調整自身所在資料節點的訊息發送速率;其中,該資料節點可以為該資料來源或者處理節點,其中,該訊息流量控制裝置還包括:第一協調器;該第一協調器與各個處理節點並列設置於該資料處理系統中,用於將各個處理節點的流量控制狀態儲存至預設儲存模組,並根據預設週期將該預設儲存模組儲存的該流量控制狀態同步至對應的處理節點。
- 根據請求項7所述的裝置,其中,為實現在自身所在處理節點的實際訊息接收量不在其預設流量閾值區間內時,產生對應的流量控制請求,該觸發器被配置為:在自身所在處理節點的實際訊息接收量大於預設最高流量閾值時,產生流量降低請求;在自身所在處理節點的實際訊息接收量大於預設最低流量閾值時,產生流量升高請求。
- 根據請求項8所述的裝置,其中,為實現根據自身所在資料節點對應的下游處理節點的流量控制請求,調整自身所在資料節點的訊息發送速率,該控制器被配置為:在該流量控制請求為該流量降低請求時,根據該下游處理節點的訊息處理速率,以及自身所在資料節點的原始訊息發送速率確定訊息發送延遲時間,並將該訊息發送延遲時間與該原始訊息發送速率進行疊加,得到自身所在資 料節點的目標訊息發送速率。
- 根據請求項8所述的系統,其中,為實現根據自身所在資料節點對應的下游處理節點的流量控制請求,調整自身所在資料節點的訊息發送速率,該控制器被配置為:在該流量控制請求為該流量升高請求時,根據預設速率調整步長逐步提高自身所在資料節點的訊息發送速率至預設正常速率。
- 根據請求項7至10之任一項所述的系統,其中,還包括:第二協調器;該第二協調器與各個處理節點並列設置於該資料處理系統中,用於獲取該觸發器發送的流量控制請求,並將該流量控制請求轉發至對應上游資料節點的控制器;其中,如果該第二協調器在預設時段內獲取到多條向同一上游資料節點的控制器發送的流量控制請求,則該第二協調器確定每條流量控制請求對該同一上游資料節點造成的訊息發送速率變化量,並將訊息發送速率變化量最大值對應的流量控制請求發送至該同一上游資料節點的控制器。
- 根據請求項7至10之任一項所述的系統,其中,為實現根據採樣結果判斷自身所在處理節點的實際訊息接收量是否滿足在其預設流量閾值區間內,該觸 發器被配置為:計算預設採樣週期內採集到的不在其預設流量閾值範圍內的採樣值個數與該預設採樣週期內的採樣值總個數之間的比值,並在該比值大於預設閾值時,判定自身所在處理節點的實際訊息接收量不在其預設流量閾值區間內。
- 一種資料處理系統,包括資料來源和多個處理節點,其特徵在於,該系統還包括請求項7所述的訊息流量控制裝置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106102709A TWI777938B (zh) | 2017-01-24 | 2017-01-24 | 訊息流量控制方法、裝置及相關系統 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106102709A TWI777938B (zh) | 2017-01-24 | 2017-01-24 | 訊息流量控制方法、裝置及相關系統 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201828059A TW201828059A (zh) | 2018-08-01 |
TWI777938B true TWI777938B (zh) | 2022-09-21 |
Family
ID=63960245
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106102709A TWI777938B (zh) | 2017-01-24 | 2017-01-24 | 訊息流量控制方法、裝置及相關系統 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI777938B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111245732B (zh) * | 2018-11-29 | 2024-04-19 | 阿里巴巴集团控股有限公司 | 一种流量控制方法、装置及设备 |
CN117971769B (zh) * | 2024-03-29 | 2024-06-25 | 新华三半导体技术有限公司 | 芯片中缓存资源的管理方法及相关装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1547360A (zh) * | 2003-12-10 | 2004-11-17 | 北京邮电大学 | 在弹性分组环上保证各个站点公平分享带宽的方法 |
CN101340358A (zh) * | 2007-07-04 | 2009-01-07 | 鼎桥通信技术有限公司 | 一种流量控制方法、系统及流量控制实体 |
TW201032553A (en) * | 2008-10-23 | 2010-09-01 | Silver Spring Networks Inc | Rapid dissemination of bulk information to widely dispersed network nodes |
US20110007631A1 (en) * | 2008-02-29 | 2011-01-13 | Gaurav Raina | Network Communication |
US20120127862A1 (en) * | 2007-10-18 | 2012-05-24 | Alcatel-Lucent | Ingress traffic flow control in a data communications system |
-
2017
- 2017-01-24 TW TW106102709A patent/TWI777938B/zh active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1547360A (zh) * | 2003-12-10 | 2004-11-17 | 北京邮电大学 | 在弹性分组环上保证各个站点公平分享带宽的方法 |
CN101340358A (zh) * | 2007-07-04 | 2009-01-07 | 鼎桥通信技术有限公司 | 一种流量控制方法、系统及流量控制实体 |
US20120127862A1 (en) * | 2007-10-18 | 2012-05-24 | Alcatel-Lucent | Ingress traffic flow control in a data communications system |
US20110007631A1 (en) * | 2008-02-29 | 2011-01-13 | Gaurav Raina | Network Communication |
TW201032553A (en) * | 2008-10-23 | 2010-09-01 | Silver Spring Networks Inc | Rapid dissemination of bulk information to widely dispersed network nodes |
Also Published As
Publication number | Publication date |
---|---|
TW201828059A (zh) | 2018-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106921587B (zh) | 消息流量控制方法、装置及相关系统 | |
US10462707B2 (en) | Data transmission method and apparatus | |
CN109905259B (zh) | 通信连接维持方法、系统和相关设备 | |
JP6306741B2 (ja) | ソフトウェア定義ネットワークにおけるマルチマスタ選択 | |
KR102030574B1 (ko) | 전송 제어 프로토콜(tcp) 데이터 패킷을 송신하는 방법 및 장치 그리고 시스템 | |
US8699343B2 (en) | Adaptive rate control based on overload signals | |
WO2017031858A1 (zh) | 时延状态信息的检测方法及装置、网络架构 | |
US7929436B2 (en) | Network communication control methods and systems | |
CN102123087B (zh) | 快速定标多级转发负载均衡方法及多级转发网络系统 | |
WO2017000719A1 (zh) | 一种基于队列时延的拥塞控制方法及装置 | |
US8811167B2 (en) | Shaping multimedia stream bit-rates to adapt to network conditions | |
CN101895472B (zh) | 流业务负载分担方法和处理方法以及相应的设备和系统 | |
WO2010129275A2 (en) | Adaptive rate control based on overload signals | |
WO2015096149A1 (zh) | Tcp链路配置方法、装置及设备 | |
US20180241663A1 (en) | Rerouting tunnel traffic in communication networks | |
TWI777938B (zh) | 訊息流量控制方法、裝置及相關系統 | |
US20170201439A1 (en) | Traffic Control Method and System | |
JP2007180891A (ja) | 通信装置及びそれに用いるパケット送信制御方法並びにそのプログラム | |
CN105591960A (zh) | 调整隧道负载的方法和设备 | |
CN106817267B (zh) | 一种故障检测方法和设备 | |
JP6885463B2 (ja) | 送信装置、可用帯域推定装置、可用帯域推定システム、方法 | |
JP2014204438A (ja) | データ伝送方法、データ伝送デバイス、およびデータ伝送システム | |
US8095228B2 (en) | Data distribution apparatus, its control method, program, and storage medium | |
US11258716B1 (en) | System and method for optimizing dynamic multi-stream network connections | |
CN109889545B (zh) | 数据通信方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GD4A | Issue of patent certificate for granted invention patent |