国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      數(shù)據(jù)流控制方法及裝置的制作方法

      文檔序號:6619121閱讀:239來源:國知局
      專利名稱:數(shù)據(jù)流控制方法及裝置的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及過負(fù)荷控制技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)流控制方法及裝置。
      背景技術(shù)
      過負(fù)荷通常是指,系統(tǒng)承受的壓力大于或等于了預(yù)先設(shè)定的可承受壓力閾值,如, 系統(tǒng)最高處理能力閾值是每秒處理10萬條消息,但在某個時刻,可能需要處理20萬條消 息,這就產(chǎn)生了過負(fù)荷,如果不對過負(fù)荷進行控制,則可能導(dǎo)致系統(tǒng)癱瘓無法工作等等。所 以,提出了過負(fù)荷控制機制,避免過負(fù)荷帶來的損害。目前,過負(fù)荷控制機制,通常是設(shè)定過負(fù)荷閾值,如CPU占用閾值,以及過負(fù)荷控 制策略,如一旦過負(fù)荷,則拒絕接入業(yè)務(wù)。在系統(tǒng)運行中,利用檢測程序?qū)ο到y(tǒng)的CPU占用 進行檢測,當(dāng)檢測到CPU占用大于或等于設(shè)定閾值,則檢測程序修改寄存器的控制標(biāo)志位, 以指示過負(fù)荷。每個業(yè)務(wù)在執(zhí)行前,需要查看當(dāng)前的控制標(biāo)志位,如果過負(fù)荷,則決定拒絕 該業(yè)務(wù)請求,避免導(dǎo)致系統(tǒng)無法工作;如果未過負(fù)荷,則決定接收該業(yè)務(wù)請求。在實現(xiàn)本發(fā)明過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問題由于過負(fù)荷控制機制,一旦系統(tǒng)過負(fù)荷,則拒絕接入所有業(yè)務(wù),即無論是何種業(yè) 務(wù),一律拒絕接入,CPU占用迅速下降,一旦系統(tǒng)恢復(fù)正常后,所有業(yè)務(wù)又都可以接入,CPU 占用迅速上升,導(dǎo)致系統(tǒng)又過負(fù)荷,周而復(fù)始,業(yè)務(wù)抖動嚴(yán)重,過負(fù)荷控制效果不好。而且,系統(tǒng)需要接入業(yè)務(wù)請求,以使業(yè)務(wù)代碼在業(yè)務(wù)入口層代碼調(diào)用 API (Application Programming Interface,應(yīng)用程序接口)獲取控制標(biāo)志位,得知是 否過負(fù)荷,而系統(tǒng)接入業(yè)務(wù)請求必然消耗掉很多資源,如,S0AP(Simple Object Access Protocol,簡單對象訪問協(xié)議)封包解包、數(shù)據(jù)格式(XSD,XML Schema Definition,XML文 檔結(jié)構(gòu)定義)校驗處理,等等,一定程度上又增加了系統(tǒng)的負(fù)荷,過負(fù)荷控制效果不好。

      發(fā)明內(nèi)容
      本發(fā)明的實施例提供了 一種數(shù)據(jù)流控制方法及裝置,數(shù)據(jù)流控制效果好。一種數(shù)據(jù)流控制方法,包括根據(jù)系統(tǒng)的負(fù)荷狀態(tài),獲取至少一個級別業(yè)務(wù)的數(shù)據(jù)池對應(yīng)的動態(tài)數(shù)據(jù)流閾值;將所述動態(tài)數(shù)據(jù)流閾值配置給對應(yīng)的數(shù)據(jù)池,以對所述數(shù)據(jù)池對應(yīng)級別的業(yè)務(wù)數(shù) 據(jù)流進行控制。一種數(shù)據(jù)流控制裝置,包括數(shù)據(jù)流閾值獲取單元,用于獲取至少一個級別業(yè)務(wù)的數(shù)據(jù)池對應(yīng)的動態(tài)數(shù)據(jù)流閾 值;控制單元,用于將所述動態(tài)數(shù)據(jù)流閾值配置給對應(yīng)的數(shù)據(jù)池,以對所述數(shù)據(jù)池對 應(yīng)級別的業(yè)務(wù)數(shù)據(jù)流進行控制。由上述本發(fā)明的實施例提供的技術(shù)方案可以看出,數(shù)據(jù)流控制方法及裝置,由于 可以對業(yè)務(wù)劃分級別并分配數(shù)據(jù)池,以及通過對不同級別業(yè)務(wù)的數(shù)據(jù)池配置動態(tài)數(shù)據(jù)流閾
      5值,對不同級別業(yè)務(wù)的數(shù)據(jù)流進行控制,所以,可以為不同的級別業(yè)務(wù)提供不同的數(shù)據(jù)流控 制,數(shù)據(jù)流控制靈活、效果好。同時,數(shù)據(jù)流控制方法及裝置不需要業(yè)務(wù)接入系統(tǒng),節(jié)約了業(yè) 務(wù)接入的系統(tǒng)資源占用。


      為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對實施例描述中所需要使用 的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本 領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他 的附圖。圖1為本發(fā)明實施例數(shù)據(jù)流控制方法流程示意圖;圖2為本發(fā)明實施例數(shù)據(jù)流控制方法中線程池接收或釋放線程的示意圖;圖3為本發(fā)明實施例數(shù)據(jù)流控制方法應(yīng)用場景示意圖一;圖4為本發(fā)明實施例數(shù)據(jù)流控制方法應(yīng)用場景示意圖二 ;圖5為本發(fā)明實施例數(shù)據(jù)流控制方法應(yīng)用場景示意圖三;圖6為本發(fā)明實施例數(shù)據(jù)流控制裝置構(gòu)成結(jié)構(gòu)示意圖一;圖7為本發(fā)明實施例數(shù)據(jù)流控制裝置構(gòu)成結(jié)構(gòu)示意圖二。
      具體實施例方式下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完 整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;?本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他 實施例,都屬于本發(fā)明保護的范圍?;诂F(xiàn)有技術(shù)的過負(fù)荷控制機制,系統(tǒng)過負(fù)荷,則拒絕接入所有業(yè)務(wù)請求,過負(fù)荷 控制效果不好,以及需要業(yè)務(wù)接入系統(tǒng),再進行過負(fù)荷控制,增加系統(tǒng)負(fù)荷的缺陷。本發(fā)明的實施例提供的數(shù)據(jù)流控制方法及裝置,對業(yè)務(wù)劃分級別并分配數(shù)據(jù)池, 以及對不同級別業(yè)務(wù)的數(shù)據(jù)池配置動態(tài)數(shù)據(jù)流閾值,不僅不需要業(yè)務(wù)接入系統(tǒng),而且,可以 對業(yè)務(wù)劃分級別并對不同級別業(yè)務(wù)的數(shù)據(jù)池配置動態(tài)數(shù)據(jù)流閾值,對不同級別業(yè)務(wù)的數(shù)據(jù) 流進行控制,數(shù)據(jù)流控制靈活、效果好。如圖1所示,本發(fā)明實施例提供一種數(shù)據(jù)流控制方法,包括步驟101 根據(jù)系統(tǒng)的負(fù)荷狀態(tài),獲取至少一個級別業(yè)務(wù)的數(shù)據(jù)池對應(yīng)的動態(tài)數(shù) 據(jù)流閾值。步驟102 將動態(tài)數(shù)據(jù)流閾值配置給對應(yīng)的數(shù)據(jù)池,以對數(shù)據(jù)池對應(yīng)級別的業(yè)務(wù) 數(shù)據(jù)流進行控制。由上述方案可以知道,根據(jù)系統(tǒng)的負(fù)荷狀態(tài),可以實現(xiàn)對一個或多個級別業(yè)務(wù)的 數(shù)據(jù)流進行控制,不再是所有業(yè)務(wù)都同一控制。而且,對各級別業(yè)務(wù)的數(shù)據(jù)流進行控制的動 態(tài)數(shù)據(jù)流閾值是與級別業(yè)務(wù)相對應(yīng)的,這樣,可以實現(xiàn)按照級別對業(yè)務(wù)的數(shù)據(jù)流進行控制, 使得對不同級別業(yè)務(wù)的數(shù)據(jù)流的控制更靈活、適用。還可以知道,本發(fā)明實施例提供的數(shù)據(jù)流控制方法不需要業(yè)務(wù)接入系統(tǒng),節(jié)約了 業(yè)務(wù)接入的系統(tǒng)資源占用。
      6
      本發(fā)明實施例提供的數(shù)據(jù)流控制方法,可以較佳地應(yīng)用于多線程機制或多消息機 制的系統(tǒng)中,線程池或消息池都需要遵循一定的派發(fā)機制,即通過某一管理器創(chuàng)建并管理 線程池或消息池的工作線程或消息。那么,數(shù)據(jù)流池可以包括線程池或消息池,動態(tài)數(shù)據(jù)流 閾值可以包括動態(tài)線程數(shù)或動態(tài)消息數(shù)??蛇x的上述方法在步驟101之前還包括根據(jù)業(yè)務(wù)的類型、業(yè)務(wù)的重要性、業(yè)務(wù)的Qos ((Quality of Service,服務(wù)質(zhì)量)中 的至少一個為業(yè)務(wù)劃分級別。應(yīng)當(dāng)知道,業(yè)務(wù)級別的劃分依據(jù),不限于此。根據(jù)上述業(yè)務(wù)級別,為業(yè)務(wù)分配對應(yīng)的數(shù)據(jù)池,并為數(shù)據(jù)池預(yù)設(shè)數(shù)據(jù)流閾值,數(shù)據(jù) 流閾值表明該數(shù)據(jù)池的能夠承受的最大業(yè)務(wù)數(shù)據(jù)流值。例如為高級別的業(yè)務(wù)分配的數(shù)據(jù) 流閾值也比較大一些,低級別的業(yè)務(wù)分配的數(shù)據(jù)流閾值比較小一些;這樣,實現(xiàn)為不同級別 的業(yè)務(wù)分配不同的數(shù)據(jù)池,使得不同級別的業(yè)務(wù)的接入相分離,一旦一個數(shù)據(jù)池的通道因 故障導(dǎo)致該級別的業(yè)務(wù)無法接入,而不會影響到其他級別業(yè)務(wù)的接入,達到故障隔離的效果。根據(jù)業(yè)務(wù)級別,為業(yè)務(wù)對應(yīng)的數(shù)據(jù)池配置至少一個動態(tài)數(shù)據(jù)流閾值,動態(tài)數(shù)據(jù)流 閾值包括第一動態(tài)數(shù)據(jù)流閾值以及第二動態(tài)數(shù)據(jù)流閾值,第一動態(tài)數(shù)據(jù)流閾值小于所述數(shù) 據(jù)流閾值,第二動態(tài)數(shù)據(jù)流閾值小于或等于所述數(shù)據(jù)流閾值。上述基于本發(fā)明實施例提供的數(shù)據(jù)流控制方法,可以較佳地應(yīng)用于多線程機制或 多消息機制的系統(tǒng)中。進一步,上述步驟中的數(shù)據(jù)流閾值可以包括最大線程數(shù)或最大消息 數(shù),第一動態(tài)數(shù)據(jù)流閾值可以包括第一動態(tài)線程數(shù)或第一動態(tài)消息數(shù),第二動態(tài)數(shù)據(jù)流閾 值可以包括第二動態(tài)線程數(shù)或第二動態(tài)消息數(shù)。如果在上述步驟中屬于同一級別的業(yè)務(wù)為至少兩個時,為各業(yè)務(wù)的數(shù)據(jù)流設(shè)置子 數(shù)據(jù)流閾值,子數(shù)據(jù)流閾值小于數(shù)據(jù)池的數(shù)據(jù)流閾值,以控制各業(yè)務(wù)的數(shù)據(jù)流共享數(shù)據(jù)池。 進一步,子數(shù)據(jù)流閾值可以包括子線程數(shù)或子消息數(shù)。示例性的,如2個業(yè)務(wù)的級別相同,其二者共用一個數(shù)據(jù)池為例,如數(shù)據(jù)池的數(shù)據(jù) 流閾值為150,則可以為各業(yè)務(wù)設(shè)置子數(shù)據(jù)流閾值為100,這樣才可以保證通道不會完全被 某一類業(yè)務(wù)故障堵死。在保證2/3的通道占用的前提下,可以保留1/3(線程數(shù)為50)的通 道對于其它業(yè)務(wù)是可用的。可選的,在根據(jù)系統(tǒng)的負(fù)荷狀態(tài),獲取至少一個級別業(yè)務(wù)的數(shù)據(jù)池對應(yīng)的動態(tài)數(shù) 據(jù)流閾值的步驟101之前,還可以包括通過檢測并比較CPU (Central Processing Unit,中央處理單元)占用與預(yù)設(shè)CPU 最大占用,或數(shù)據(jù)流請求的時延與預(yù)設(shè)最大時延、或數(shù)據(jù)流請求的等待隊列長度與預(yù)設(shè)最 大等待隊列長度,或業(yè)務(wù)QoS與預(yù)設(shè)QoS,確定系統(tǒng)的負(fù)荷狀態(tài),業(yè)務(wù)QoS為業(yè)務(wù)平均響應(yīng)時 長、業(yè)務(wù)及時響應(yīng)率或業(yè)務(wù)成功率。 具體而言,如果CPU占用大于等于預(yù)設(shè)CPU最大占用,或數(shù)據(jù)流請求的時延大于等 于預(yù)設(shè)最大時延、或數(shù)據(jù)流請求的等待隊列長度大于等于預(yù)設(shè)最大等待隊列長度,或業(yè)務(wù) 平均響應(yīng)時長大于等于預(yù)設(shè)業(yè)務(wù)平均響應(yīng)時長,或業(yè)務(wù)及時響應(yīng)率小于等于預(yù)設(shè)業(yè)務(wù)及時 響應(yīng)率,或業(yè)務(wù)成功率小于等于預(yù)設(shè)業(yè)務(wù)成功率時,可以認(rèn)為,系統(tǒng)的負(fù)荷狀態(tài)為過負(fù)荷狀 態(tài)。 相應(yīng)地,如果CPU占用小于預(yù)設(shè)CPU最大占用,或數(shù)據(jù)流請求的時延小于預(yù)設(shè)最大時延、或數(shù)據(jù)流請求的等待隊列長度小于預(yù)設(shè)最大等待隊列長度,或業(yè)務(wù)平均響應(yīng)時長小 于預(yù)設(shè)業(yè)務(wù)平均響應(yīng)時長,或業(yè)務(wù)及時響應(yīng)率大于預(yù)設(shè)業(yè)務(wù)及時響應(yīng)率,或業(yè)務(wù)成功率大 于預(yù)設(shè)業(yè)務(wù)成功率時,可以認(rèn)為,系統(tǒng)的負(fù)荷狀態(tài)為未過負(fù)荷狀態(tài)。由上描述,根據(jù)上述步驟獲得的系統(tǒng)負(fù)荷狀態(tài),上述步驟101,進一步,可以具體包 括當(dāng)系統(tǒng)處于過負(fù)荷狀態(tài)時,按照業(yè)務(wù)級別的高低排序,先獲取低級別業(yè)務(wù)的數(shù)據(jù) 池對應(yīng)的第一動態(tài)數(shù)據(jù)流閾值?;蛘?,當(dāng)系統(tǒng)恢復(fù)處于未過負(fù)荷狀態(tài)時,按照業(yè)務(wù)級別的高低排序,先獲取高級別 業(yè)務(wù)的數(shù)據(jù)池對應(yīng)的第二動態(tài)數(shù)據(jù)流閾值。具體而言,當(dāng)系統(tǒng)處于過負(fù)荷狀態(tài)時,可以按照業(yè)務(wù)級別的高低排序,優(yōu)先獲取低 級別業(yè)務(wù)的數(shù)據(jù)池對應(yīng)的第一動態(tài)數(shù)據(jù)流閾值。由于第一動態(tài)數(shù)據(jù)流閾值小于數(shù)據(jù)流閾 值,步驟102中,將第一動態(tài)數(shù)據(jù)流閾值配置給對應(yīng)的數(shù)據(jù)池,即相當(dāng)于將低級別業(yè)務(wù)的數(shù) 據(jù)池的接收并發(fā)請求的能力降低了,則新的業(yè)務(wù)請求無法接入,則被放入等待隊列,甚至可 以因為等待時間長超時而被拒絕接入,這樣系統(tǒng)的負(fù)荷也就隨之下降了。按照業(yè)務(wù)級別的高低排序,優(yōu)先獲取低級別業(yè)務(wù)的數(shù)據(jù)池對應(yīng)的第一動態(tài)數(shù)據(jù)流 閾值,并配置給對應(yīng)的數(shù)據(jù)池,是為了對高級別業(yè)務(wù)的接入保障,這樣,優(yōu)先控制低級別業(yè) 務(wù)的接入,保障了高級別業(yè)務(wù)的接入,并同時降低了系統(tǒng)的負(fù)荷。另外,為各級別業(yè)務(wù)的第一動態(tài)數(shù)據(jù)流閾值可以相同或不同,根據(jù)不同的控制策 略而定。對應(yīng)地,當(dāng)系統(tǒng)恢復(fù)處于未過負(fù)荷狀態(tài)時,可以按照業(yè)務(wù)級別的高低排序,優(yōu)先獲 取高級別業(yè)務(wù)的數(shù)據(jù)池對應(yīng)的第二動態(tài)數(shù)據(jù)流閾值。由于第二動態(tài)數(shù)據(jù)流閾值小于或等于 所述數(shù)據(jù)流閾值,而且,之前由于系統(tǒng)處于過負(fù)荷狀態(tài),各級別業(yè)務(wù)的數(shù)據(jù)池的接收并發(fā)請 求的能力被配置的第一動態(tài)數(shù)據(jù)流閾值降低了,所以步驟102中,將第二動態(tài)數(shù)據(jù)流閾值 配置給對應(yīng)的數(shù)據(jù)池,即相當(dāng)于將高級別業(yè)務(wù)的數(shù)據(jù)池的接收并發(fā)請求的能力提高了,則 新的業(yè)務(wù)請求可以接入,這樣系統(tǒng)的能力被合理利用。按照業(yè)務(wù)級別的高低排序,優(yōu)先獲取 高級別業(yè)務(wù)的數(shù)據(jù)池對應(yīng)的第二動態(tài)數(shù)據(jù)流閾值,并配置給對應(yīng)的數(shù)據(jù)池,是為了對高級 別業(yè)務(wù)的接入保障。另外,為各級業(yè)務(wù)配置的第二動態(tài)數(shù)據(jù)流閾值可以相同或不同,根據(jù)不同的控制 策略而定。具體而言,上述過程中,可以通過連續(xù)檢測一次以上的CPU占用、數(shù)據(jù)流請求的時 延、數(shù)據(jù)流請求的等待隊列長度或業(yè)務(wù)QoS,再比較CPU占用、數(shù)據(jù)流請求的時延、數(shù)據(jù)流請 求的等待隊列長度或業(yè)務(wù)QoS與預(yù)設(shè)最大CPU占用、預(yù)設(shè)最小時延、預(yù)設(shè)最小等待隊列長度 或預(yù)設(shè)業(yè)務(wù)QoS,通過每次的比較結(jié)果,判斷系統(tǒng)是否處于過負(fù)荷狀態(tài),得到準(zhǔn)確可靠的判 斷結(jié)果。如果只是偶爾一次發(fā)現(xiàn)系統(tǒng)處于過負(fù)荷狀態(tài),可以不必立即進行數(shù)據(jù)流控制。綜上所述,本發(fā)明實施例提供的數(shù)據(jù)流控制方法,根據(jù)系統(tǒng)的負(fù)荷狀態(tài),可以實現(xiàn) 對一個或多個級別業(yè)務(wù)的數(shù)據(jù)流進行控制,不再是所有業(yè)務(wù)都同一控制。而且,對各級別業(yè) 務(wù)的數(shù)據(jù)流進行控制的動態(tài)數(shù)據(jù)流閾值是與級別業(yè)務(wù)相對應(yīng)的,這樣,可以實現(xiàn)按照級別 對業(yè)務(wù)的數(shù)據(jù)流進行控制,使得對不同級別業(yè)務(wù)的數(shù)據(jù)流的控制更靈活、適用。本發(fā)明實施例提供的數(shù)據(jù)流控制方法,數(shù)據(jù)流控制平穩(wěn),避免了現(xiàn)有技術(shù)中,一旦系統(tǒng)過負(fù)荷之后,所有業(yè)務(wù)都拒絕接入,導(dǎo)致業(yè)務(wù)變化突變,一旦系統(tǒng)恢復(fù)正常后,所有業(yè) 務(wù)都接收接入,產(chǎn)生業(yè)務(wù)抖動。如圖2所示,以于單個線程池為例,說明本發(fā)明實施例提供的數(shù)據(jù)流控制方法,如 何對數(shù)據(jù)池對應(yīng)級別的業(yè)務(wù)數(shù)據(jù)流進行控制。當(dāng)某一級別業(yè)務(wù)的線程池中已創(chuàng)建的線程數(shù)還沒有達到最大線程數(shù)時,系統(tǒng)可以 接入新的業(yè)務(wù)請求,創(chuàng)建新的線程來處理業(yè)務(wù),也就是系統(tǒng)有多余的能力處理新的業(yè)務(wù)請 求,也意味著系統(tǒng)的并發(fā)請求處理能力在增加。當(dāng)系統(tǒng)負(fù)荷隨著并發(fā)業(yè)務(wù)請求的增加而出現(xiàn)過負(fù)荷時,可以為線程池配置第一動 態(tài)線程數(shù),該第一線程數(shù)小于最大線程數(shù),這樣,線程池可允許的并發(fā)請求處理能力相當(dāng)于 被調(diào)低了,這樣新的業(yè)務(wù)請求因為沒有線程可用,則被放入等待隊列,甚至新的業(yè)務(wù)請求可 以因為等待時間長超時而被拒絕接入,這樣系統(tǒng)的負(fù)荷也就隨之下降了。當(dāng)線程池的第一 動態(tài)線程數(shù)為1時,業(yè)務(wù)就變成單線程串行執(zhí)行了,線程池可允許的并發(fā)請求處理能力到 達最低。再隨著時間推移,線程池已有的線程執(zhí)行完成后,變?yōu)榭臻e線程,系統(tǒng)負(fù)荷恢復(fù)正 常狀態(tài),可以為線程池配置第二動態(tài)線程數(shù),該第二線程數(shù)小于或等于最大線程數(shù),這樣, 相當(dāng)于調(diào)高了線程池可允許的并發(fā)請求處理能力,線程池釋放出空閑線程,以恢復(fù)系統(tǒng)接 收并發(fā)請求的能力。注意,當(dāng)線程池的第二動態(tài)線程數(shù)等于最大線程數(shù)時,系統(tǒng)恢復(fù)達到接收最大并 發(fā)請求的能力。通過上述描述,本發(fā)明的實施例提供的數(shù)據(jù)流控制方法,可以對業(yè)務(wù)劃分級別并 分配數(shù)據(jù)池,以及對不同級別業(yè)務(wù)的數(shù)據(jù)池配置動態(tài)數(shù)據(jù)流閾值,實現(xiàn)不同級別業(yè)務(wù)的數(shù) 據(jù)流控制。示例性的,如目前基于 J2EE 的 JAVA (Java 2Platform Enterprise Edition Java, 企業(yè)應(yīng)用平臺)系統(tǒng),適用于本發(fā)明的實施例提供的數(shù)據(jù)流控制方法。J2EE的JAVA系統(tǒng) 是單進程多線程的機制,同時在系統(tǒng)中運行多種業(yè)務(wù),以電話營業(yè)廳為例,營業(yè)業(yè)務(wù)包括開 戶,銷戶,查詢余額,掛失,解掛失等多種業(yè)務(wù),還有系統(tǒng)后臺的定時批量任務(wù),比如月結(jié),批 量預(yù)開戶等,業(yè)務(wù)復(fù)雜多樣,各種業(yè)務(wù)的占用數(shù)據(jù)流量都不一樣。同理,根據(jù)本發(fā)明實施例的數(shù)據(jù)流控制方法,還可以結(jié)合應(yīng)用該方法到后臺定時 任務(wù)的執(zhí)行,即可以將后臺定時任務(wù)分級別,按照級別高低排序,與前臺的數(shù)據(jù)流控制方法 結(jié)合進行控制。具體而言,如在系統(tǒng)處于過負(fù)荷狀態(tài)時,如果有后臺定時任務(wù)在執(zhí)行,則根據(jù)后臺 定時任務(wù)的級別,可以先暫不執(zhí)行級別低的后臺定時任務(wù),如果還過負(fù)荷,可以再按照任務(wù) 級別,逐級暫停后臺定時任務(wù)。而在系統(tǒng)業(yè)務(wù)壓力下降時,可以恢復(fù)后臺定時任務(wù)繼續(xù)執(zhí) 行。也可以,在對前臺業(yè)務(wù)分級別的進行控制時,同步對后臺定時任務(wù)也分級別的進 行控制,等等。具體的結(jié)合控制策略,不受上述示例限制。結(jié)合參見圖3所示,具體以為各級別業(yè)務(wù)分配線程池,以及為各級別業(yè)務(wù)的線程 池配置3級第一動態(tài)線程數(shù)及第二動態(tài)線程數(shù),來說明本發(fā)明實施例的數(shù)據(jù)流控制方法。仍以電話營業(yè)廳為例,營業(yè)業(yè)務(wù)包括開戶,銷戶,查詢余額,掛失,解掛失等多種,還可以有系統(tǒng)后臺的定時批量任務(wù),比如月結(jié),批量預(yù)開戶等業(yè)務(wù)。301、按照業(yè)務(wù)的重要性對業(yè)務(wù)進行分級。可以按業(yè)務(wù)的重要性對業(yè)務(wù)進行分級,如級別從高到低排序為第1級后臺系統(tǒng)間實時調(diào)用接口(查詢接口,比如查詢余額);第2級后臺系統(tǒng)間實時調(diào)用接口(如調(diào)帳業(yè)務(wù));第3級營業(yè)前臺網(wǎng)絡(luò)(Web)請求;第4級管理業(yè)務(wù)接口(開戶,掛失等);第5級批量業(yè)務(wù)接口(批量開戶,批量消戶)。如果有后臺定時任務(wù),則也可以根據(jù)后臺定時任務(wù)的級別對后臺業(yè)務(wù)進行分級。如后臺定時任務(wù),按照級別從高到低排序為月結(jié)業(yè)務(wù)、批量預(yù)開戶業(yè)務(wù)。302、為各級別業(yè)務(wù)分配線程池??梢愿鶕?jù)業(yè)務(wù)級別,為每個級別的業(yè)務(wù)分配線程池,并可以為各線程池預(yù)設(shè)最大 線程數(shù),最大線程數(shù)表明線程池的接收最大并發(fā)請求的能力。303、為各級別業(yè)務(wù)的線程池配置第一動態(tài)線程數(shù)及第二動態(tài)線程數(shù)??梢愿鶕?jù)業(yè)務(wù)級別,為每個業(yè)務(wù)的線程池配置第一動態(tài)線程數(shù)及第二動態(tài)線程數(shù)。每個業(yè)務(wù)的線程池的第一動態(tài)線程數(shù)小于線程池的最大線程數(shù),系統(tǒng)處于過負(fù)荷 狀態(tài)時,通過為線程池配置第一動態(tài)線程數(shù),調(diào)低線程池可允許的并發(fā)請求處理能力,以降 低系統(tǒng)負(fù)荷。每個業(yè)務(wù)的線程池的第二動態(tài)線程數(shù)小于或等于線程池的最大線程數(shù),系統(tǒng)恢復(fù) 處于未過負(fù)荷狀態(tài)時,通過為線程池配置第二動態(tài)線程數(shù),提高線程池可允許的并發(fā)請求 處理能力,以使系統(tǒng)恢復(fù)負(fù)荷能力。可以為各級別業(yè)務(wù)的線程池配置多個第一動態(tài)線程數(shù),系統(tǒng)處于過負(fù)荷狀態(tài)時, 實現(xiàn)分級對各級別業(yè)務(wù)控制,如下表1所示表1
      第1級業(yè)務(wù), 最大線程數(shù)A第2級業(yè)務(wù), 最大線程數(shù)B第3級業(yè)務(wù), 最大線程數(shù)C第4級業(yè)務(wù), 最大線程數(shù)D第5級業(yè)務(wù),最 大線程數(shù)E第一級控 制第一動態(tài)線程 數(shù)Al第一動態(tài)線程 數(shù)Bl第一動態(tài)線程 數(shù)Cl第一動態(tài)線程 數(shù)Dl第一動態(tài)線程 數(shù)El第二級控 制第一線動態(tài)程 數(shù)A2第一動態(tài)線程 數(shù)B2第一動態(tài)線程 數(shù)C2第一動態(tài)線程 數(shù)D2第一動態(tài)線程 數(shù)E2第三級控 制第一線動態(tài)程 數(shù)A 3第一動態(tài)線程 數(shù)B 3第一動態(tài)線程 數(shù)C 3第一動態(tài)線程 數(shù)D 3第一動態(tài)線程 數(shù)E 3
      10
      注意,當(dāng)線程池的第一動態(tài)線程數(shù)為1時,業(yè)務(wù)就變成單線程串行執(zhí)行了。同理,可以為各級別業(yè)務(wù)的線程池配置多個第二動態(tài)線程數(shù),系統(tǒng)恢復(fù)處于未過 負(fù)荷狀態(tài)時,實現(xiàn)分級對各級別業(yè)務(wù)恢復(fù),如下表1所示如下表2所示表2
      權(quán)利要求
      一種數(shù)據(jù)流控制方法,其特征在于,包括根據(jù)系統(tǒng)的負(fù)荷狀態(tài),獲取至少一個級別業(yè)務(wù)的數(shù)據(jù)池對應(yīng)的動態(tài)數(shù)據(jù)流閾值;將所述動態(tài)數(shù)據(jù)流閾值配置給對應(yīng)的數(shù)據(jù)池,以對所述數(shù)據(jù)池對應(yīng)級別的業(yè)務(wù)數(shù)據(jù)流進行控制。
      2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)流控制方法,其特征在于,所述方法還包括根據(jù)系統(tǒng)的 負(fù)荷狀態(tài),獲取至少一個級別業(yè)務(wù)的數(shù)據(jù)池對應(yīng)的動態(tài)數(shù)據(jù)流閾值之前,根據(jù)業(yè)務(wù)級別,為業(yè)務(wù)分配對應(yīng)的數(shù)據(jù)池,并為所述數(shù)據(jù)池預(yù)設(shè)數(shù)據(jù)流閾值,所述數(shù)據(jù) 流閾值表明數(shù)據(jù)池的最大業(yè)務(wù)數(shù)據(jù)流值;根據(jù)業(yè)務(wù)級別,為業(yè)務(wù)對應(yīng)的數(shù)據(jù)池配置至少一個動態(tài)數(shù)據(jù)流閾值,所述動態(tài)數(shù)據(jù)流 閾值包括第一動態(tài)數(shù)據(jù)流閾值以及第二動態(tài)數(shù)據(jù)流閾值,所述第一動態(tài)數(shù)據(jù)流閾值小于所 述數(shù)據(jù)流閾值,所述第二動態(tài)數(shù)據(jù)流閾值小于或等于所述數(shù)據(jù)流閾值。
      3.根據(jù)權(quán)利要求2所述的數(shù)據(jù)流控制方法,其特征在于,根據(jù)系統(tǒng)的負(fù)荷狀態(tài),獲取至 少一個級別業(yè)務(wù)的數(shù)據(jù)池對應(yīng)的動態(tài)數(shù)據(jù)流閾值,包括當(dāng)系統(tǒng)處于過負(fù)荷狀態(tài)時,按照業(yè)務(wù)級別的高低排序,先獲取低級別業(yè)務(wù)的數(shù)據(jù)池對 應(yīng)的第一動態(tài)數(shù)據(jù)流閾值;或者,當(dāng)系統(tǒng)恢復(fù)處于未過負(fù)荷狀態(tài)時,按照業(yè)務(wù)級別的高低排序,先獲取高級別業(yè)務(wù) 的數(shù)據(jù)池對應(yīng)的第二動態(tài)數(shù)據(jù)流閾值。
      4.根據(jù)權(quán)利要求2所述的數(shù)據(jù)流控制方法,其特征在于,所述數(shù)據(jù)流池包括線程池或 消息池,所述數(shù)據(jù)流閾值包括最大線程數(shù)或最大消息數(shù),所述動態(tài)數(shù)據(jù)流閾值包括動態(tài)線 程數(shù)或動態(tài)消息數(shù)。
      5.根據(jù)權(quán)利要求2所述的數(shù)據(jù)流控制方法,其特征在于,所述方法還包括根據(jù)業(yè)務(wù) 級別,為業(yè)務(wù)分配對應(yīng)的數(shù)據(jù)池之前,根據(jù)業(yè)務(wù)的類型、業(yè)務(wù)的重要性、業(yè)務(wù)的服務(wù)質(zhì)量Qos 中的至少一個為業(yè)務(wù)劃分級別。
      6.根據(jù)權(quán)利要求1所述的數(shù)據(jù)流控制方法,其特征在于,所述方法還包括根據(jù)系統(tǒng)的 負(fù)荷狀態(tài),獲取至少一個級別業(yè)務(wù)的數(shù)據(jù)池對應(yīng)的動態(tài)數(shù)據(jù)流閾值之前,通過檢測并比較中央處理單元CPU占用與預(yù)設(shè)CPU最大占用,或數(shù)據(jù)流請求的時延與 預(yù)設(shè)最大時延、或數(shù)據(jù)流請求的等待隊列長度與預(yù)設(shè)最大等待隊列長度,或業(yè)務(wù)QoS與預(yù) 設(shè)QoS,確定系統(tǒng)的負(fù)荷狀態(tài),所述業(yè)務(wù)QoS為業(yè)務(wù)平均響應(yīng)時長、業(yè)務(wù)及時響應(yīng)率或業(yè)務(wù) 成功率;所述CPU占用大于等于預(yù)設(shè)CPU最大占用,或數(shù)據(jù)流請求的時延大于等于預(yù)設(shè)最大時 延、或數(shù)據(jù)流請求的等待隊列長度大于等于預(yù)設(shè)最大等待隊列長度,或業(yè)務(wù)平均響應(yīng)時長 大于等于預(yù)設(shè)業(yè)務(wù)平均響應(yīng)時長,或業(yè)務(wù)及時響應(yīng)率小于等于預(yù)設(shè)業(yè)務(wù)及時響應(yīng)率,或業(yè) 務(wù)成功率小于等于預(yù)設(shè)業(yè)務(wù)成功率時,系統(tǒng)的負(fù)荷狀態(tài)為過負(fù)荷狀態(tài);所述CPU占用小于預(yù)設(shè)CPU最大占用,或數(shù)據(jù)流請求的時延小于預(yù)設(shè)最大時延、或數(shù)據(jù) 流請求的等待隊列長度小于預(yù)設(shè)最大等待隊列長度,或業(yè)務(wù)平均響應(yīng)時長小于預(yù)設(shè)業(yè)務(wù)平 均響應(yīng)時長,或業(yè)務(wù)及時響應(yīng)率大于預(yù)設(shè)業(yè)務(wù)及時響應(yīng)率,或業(yè)務(wù)成功率大于預(yù)設(shè)業(yè)務(wù)成 功率時,系統(tǒng)的負(fù)荷狀態(tài)為未過負(fù)荷狀態(tài)。
      7.根據(jù)權(quán)利要求2所述的數(shù)據(jù)流控制方法,其特征在于,根據(jù)業(yè)務(wù)級別,為業(yè)務(wù)分配對 應(yīng)的數(shù)據(jù)池,包括當(dāng)屬于同一級別的業(yè)務(wù)為至少兩個時,為各業(yè)務(wù)的數(shù)據(jù)流設(shè)置子數(shù)據(jù)流閾值,所述子 數(shù)據(jù)流閾值小于數(shù)據(jù)池的數(shù)據(jù)流閾值,以控制各業(yè)務(wù)的數(shù)據(jù)流共享數(shù)據(jù)池。
      8.一種數(shù)據(jù)流控制裝置,其特征在于,包括數(shù)據(jù)流閾值獲取單元,用于獲取至少一個級別業(yè)務(wù)的數(shù)據(jù)池對應(yīng)的動態(tài)數(shù)據(jù)流閾值; 控制單元,用于將所述動態(tài)數(shù)據(jù)流閾值配置給對應(yīng)的數(shù)據(jù)池,以對所述數(shù)據(jù)池對應(yīng)級 別的業(yè)務(wù)數(shù)據(jù)流進行控制。
      9.根據(jù)權(quán)利要求8所述的數(shù)據(jù)流控制裝置,其特征在于,所述數(shù)據(jù)流控制裝置,還包括數(shù)據(jù)流閾值配置單元,用于根據(jù)業(yè)務(wù)級別,為業(yè)務(wù)分配對應(yīng)的數(shù)據(jù)池,并為所述數(shù)據(jù)池 預(yù)設(shè)數(shù)據(jù)流閾值,所述數(shù)據(jù)流閾值表明數(shù)據(jù)池的最大業(yè)務(wù)數(shù)據(jù)流值,以及根據(jù)業(yè)務(wù)級別,為 業(yè)務(wù)對應(yīng)的數(shù)據(jù)池配置至少一個動態(tài)數(shù)據(jù)流閾值,所述動態(tài)數(shù)據(jù)流閾值包括第一動態(tài)數(shù)據(jù) 流閾值以及第二動態(tài)數(shù)據(jù)流閾值,所述第一動態(tài)數(shù)據(jù)流閾值小于所述數(shù)據(jù)流閾值,所述第 二動態(tài)數(shù)據(jù)流閾值小于或等于所述數(shù)據(jù)流閾值;所述數(shù)據(jù)流閾值獲取單元,還用于獲取第一動態(tài)數(shù)據(jù)流閾值及第二動態(tài)數(shù)據(jù)流閾值; 數(shù)據(jù)流閾值存儲單元,用于存儲所述數(shù)據(jù)流閾值配置單元配置的所述數(shù)據(jù)流閾值、第 一動態(tài)數(shù)據(jù)流閾值及第二動態(tài)數(shù)據(jù)流閾值。
      10.根據(jù)權(quán)利要求9所述的數(shù)據(jù)流控制裝置,其特征在于,所述數(shù)據(jù)流閾值獲取單元, 包括第一數(shù)據(jù)流閾值獲取單元,用于當(dāng)系統(tǒng)處于過負(fù)荷狀態(tài)時,按照業(yè)務(wù)級別的高低排序, 先獲取低級別業(yè)務(wù)的數(shù)據(jù)池對應(yīng)的第一動態(tài)數(shù)據(jù)流閾值;第二數(shù)據(jù)流閾值獲取單元,用于當(dāng)系統(tǒng)恢復(fù)處于未過負(fù)荷狀態(tài)時,按照業(yè)務(wù)級別的高 低排序,先獲取高級別業(yè)務(wù)的數(shù)據(jù)池對應(yīng)的第二動態(tài)數(shù)據(jù)流閾值。
      11.根據(jù)權(quán)利要求8所述的數(shù)據(jù)流控制裝置,其特征在于,所述裝置,還包括 業(yè)務(wù)級別劃分單元,用于根據(jù)業(yè)務(wù)的類型、業(yè)務(wù)的重要性、業(yè)務(wù)的服務(wù)質(zhì)量Qos中的至少一個為業(yè)務(wù)劃分級別;檢測單元,用于檢測CPU占用,或數(shù)據(jù)流請求的時延,或數(shù)據(jù)流請求的等待隊列長度或 業(yè)務(wù)QoS ;系統(tǒng)負(fù)荷狀態(tài)判斷單元,用于比較所述檢測單元獲得的CPU占用與預(yù)設(shè)CPU最大占用, 或數(shù)據(jù)流請求的時延與預(yù)設(shè)最大時延、或數(shù)據(jù)流請求的等待隊列長度與預(yù)設(shè)最大等待隊列 長度,或業(yè)務(wù)QoS與預(yù)設(shè)QoS,確定系統(tǒng)的負(fù)荷狀態(tài),所述業(yè)務(wù)QoS為業(yè)務(wù)平均響應(yīng)時長、業(yè) 務(wù)及時響應(yīng)率或業(yè)務(wù)成功率;所述CPU占用大于等于預(yù)設(shè)CPU最大占用,或數(shù)據(jù)流請求的時延大于等于預(yù)設(shè)最大時 延、或數(shù)據(jù)流請求的等待隊列長度大于等于預(yù)設(shè)最大等待隊列長度,或業(yè)務(wù)平均響應(yīng)時長 大于等于預(yù)設(shè)業(yè)務(wù)平均響應(yīng)時長,或業(yè)務(wù)及時響應(yīng)率小于等于預(yù)設(shè)業(yè)務(wù)及時響應(yīng)率,或業(yè) 務(wù)成功率小于等于預(yù)設(shè)業(yè)務(wù)成功率時,系統(tǒng)的負(fù)荷狀態(tài)為過負(fù)荷狀態(tài);所述CPU占用小于預(yù)設(shè)CPU最大占用,或數(shù)據(jù)流請求的時延小于預(yù)設(shè)最大時延、或數(shù)據(jù) 流請求的等待隊列長度小于預(yù)設(shè)最大等待隊列長度,或業(yè)務(wù)平均響應(yīng)時長小于預(yù)設(shè)業(yè)務(wù)平 均響應(yīng)時長,或業(yè)務(wù)及時響應(yīng)率大于預(yù)設(shè)業(yè)務(wù)及時響應(yīng)率,或業(yè)務(wù)成功率大于預(yù)設(shè)業(yè)務(wù)成 功率時,系統(tǒng)的負(fù)荷狀態(tài)為未過負(fù)荷狀態(tài);告警單元,用于所述系統(tǒng)負(fù)荷狀態(tài)判斷單元的判斷結(jié)果符合告警條件時,向所述數(shù)據(jù) 流閾值獲取單元和/或所述控制單元發(fā)出告警信號。
      12.根據(jù)權(quán)利要求9所述的數(shù)據(jù)流控制裝置,其特征在于,所述數(shù)據(jù)流閾值配置單元, 還用于當(dāng)屬于同一級別的業(yè)務(wù)為至少兩個時,為各業(yè)務(wù)的數(shù)據(jù)流設(shè)置子數(shù)據(jù)流閾值,所述 子數(shù)據(jù)流閾值小于數(shù)據(jù)池的數(shù)據(jù)流閾值,以控制各業(yè)務(wù)的數(shù)據(jù)流共享數(shù)據(jù)池。
      全文摘要
      本發(fā)明實施例提供一種數(shù)據(jù)流控制方法以及裝置。其中,數(shù)據(jù)流控制方法,包括根據(jù)系統(tǒng)的負(fù)荷狀態(tài),獲取至少一個級別業(yè)務(wù)的數(shù)據(jù)池對應(yīng)的動態(tài)數(shù)據(jù)流閾值;將所述動態(tài)數(shù)據(jù)流閾值配置給對應(yīng)的數(shù)據(jù)池,以對所述數(shù)據(jù)池對應(yīng)級別的業(yè)務(wù)數(shù)據(jù)流進行控制。由于可以對不同級別業(yè)務(wù)的數(shù)據(jù)池配置動態(tài)數(shù)據(jù)流閾值,使得可以更靈活地為不同的級別業(yè)務(wù)提供不同的數(shù)據(jù)流控制,同時不需要業(yè)務(wù)接入系統(tǒng),節(jié)約了業(yè)務(wù)接入的系統(tǒng)資源占用。
      文檔編號G06F9/50GK101938396SQ20091008679
      公開日2011年1月5日 申請日期2009年6月30日 優(yōu)先權(quán)日2009年6月30日
      發(fā)明者張普朝 申請人:華為技術(shù)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1