本發(fā)明涉及互聯(lián)網(wǎng)技術(shù),特別涉及一種信息處理方法、裝置和系統(tǒng)。
背景技術(shù):
現(xiàn)在業(yè)務(wù)系統(tǒng)中,為了防止負(fù)載過高造成雪崩,需要給業(yè)務(wù)進(jìn)行每秒查詢率(Query Per Second,QPS)流量限制。而現(xiàn)在的后臺(tái)系統(tǒng)大多是異地容災(zāi),由于各地流量大小不一樣,會(huì)面臨QPS多機(jī)器分配問題。
現(xiàn)有的技術(shù)方案包括:首先,各個(gè)業(yè)務(wù)服務(wù)器將業(yè)務(wù)日志匯總到一臺(tái)QPS計(jì)算服務(wù)器;然后,QPS計(jì)算服務(wù)器通過對(duì)日志文件的處理,計(jì)算出一天的總業(yè)務(wù)量和各個(gè)業(yè)務(wù)服務(wù)器的單機(jī)業(yè)務(wù)量;接著,通過單機(jī)業(yè)務(wù)量來計(jì)算一小時(shí)單機(jī)業(yè)務(wù)量的平均值;再按平均值再算出每臺(tái)業(yè)務(wù)服務(wù)器的流量比例,結(jié)果寫文件;最后,由文件推送系統(tǒng)將文件推送到各個(gè)業(yè)務(wù)服務(wù)器上,由業(yè)務(wù)進(jìn)程加載到內(nèi)存中。業(yè)務(wù)將以此流量比例分配下一小時(shí)的流量QPS。
但是,現(xiàn)有技術(shù)存在以下缺陷:
1、無法實(shí)時(shí)動(dòng)態(tài)適應(yīng)流量變化
現(xiàn)有技術(shù)是以一天或一小時(shí)的平均值來分配QPS,無法考慮到各個(gè)地域的流量波動(dòng)。線上業(yè)務(wù)通常會(huì)因?yàn)橐粋€(gè)tips彈窗,引來一個(gè)瞬間的流量峰值,而這個(gè)峰值往往只會(huì)持續(xù)十幾分鐘至半個(gè)小時(shí),因?yàn)閠ips內(nèi)容上存在地域差異,地域性tips彈出時(shí)間都不一致?;ヂ?lián)網(wǎng)流量每天也會(huì)有固定的早高峰和晚高峰的規(guī)律,這些高峰也會(huì)因?yàn)榈赜虿町悾霈F(xiàn)一些時(shí)間上的差異。如果僅僅參考平均值,有峰值的服務(wù)器會(huì)因?yàn)镼PS小而拒絕很多有價(jià)值的流量,而其他沒有峰值的服務(wù)器上很可能會(huì)出現(xiàn)QPS過剩的情況。流量峰值過后,很可能下一小時(shí)該服務(wù)器又被分配了超額了QPS,占用了其他服務(wù)器的QPS額度,造成QPS 利用不充分,影響別的服務(wù)器的QPS份額。
2、文件處理依賴磁盤,增大了故障概率
現(xiàn)在服務(wù)器故障大部分為磁盤只讀或其他磁盤故障,例如,磁盤已滿等。現(xiàn)有技術(shù)方案依賴磁盤存儲(chǔ)日志文件和計(jì)算結(jié)果,當(dāng)磁盤出現(xiàn)故障時(shí)則無法進(jìn)行計(jì)算,也就無法推送計(jì)算結(jié)果。
3、業(yè)務(wù)需要定時(shí)讀取文件,增加了業(yè)務(wù)邏輯的復(fù)雜性
業(yè)務(wù)進(jìn)程除了處理業(yè)務(wù)之外,還需要定時(shí)讀取QPS文件,同時(shí)還需要考慮讀取數(shù)據(jù)后的生效邏輯,還需要考慮如果文件沒更新的情況,增加了業(yè)務(wù)邏輯的復(fù)雜性。
技術(shù)實(shí)現(xiàn)要素:
為解決現(xiàn)有存在的技術(shù)問題,本發(fā)明實(shí)施例提供一種信息處理方法、裝置和系統(tǒng)。
本發(fā)明實(shí)施例提供一種信息處理方法,應(yīng)用于信息處理系統(tǒng),所述系統(tǒng)包括QPS計(jì)算服務(wù)器和業(yè)務(wù)服務(wù)器,所述方法包括:
所述業(yè)務(wù)服務(wù)器獲取預(yù)設(shè)的第一時(shí)間段內(nèi)自身的業(yè)務(wù)信息,并通過應(yīng)用程序編程接口API上報(bào)所述業(yè)務(wù)信息給所述QPS計(jì)算服務(wù)器;
所述QPS計(jì)算服務(wù)器根據(jù)所述業(yè)務(wù)服務(wù)器上報(bào)的業(yè)務(wù)信息,得到預(yù)設(shè)的第二時(shí)間段內(nèi)所述業(yè)務(wù)服務(wù)器的QPS分配信息,并通過API將所述業(yè)務(wù)服務(wù)器的QPS分配信息寫入第一內(nèi)存;
所述QPS計(jì)算服務(wù)器將所述第一內(nèi)存中的QPS分配信息分發(fā)給所述業(yè)務(wù)服務(wù)器對(duì)應(yīng)的第二內(nèi)存;
所述業(yè)務(wù)服務(wù)器通過API從所述第二內(nèi)存中獲取QPS分配信息,并根據(jù)所述QPS分配信息進(jìn)行流量控制。
其中,所述業(yè)務(wù)信息包括第一業(yè)務(wù)量;
所述業(yè)務(wù)服務(wù)器獲取預(yù)設(shè)的第一時(shí)間段內(nèi)自身的業(yè)務(wù)信息,并通過API上報(bào)所述業(yè)務(wù)信息給QPS計(jì)算服務(wù)器,包括:
所述業(yè)務(wù)服務(wù)器統(tǒng)計(jì)自身預(yù)設(shè)的第一時(shí)間段內(nèi)有效業(yè)務(wù)處理完成的次數(shù),得到所述第一業(yè)務(wù)量;
所述業(yè)務(wù)服務(wù)器將統(tǒng)計(jì)得到的所述第一業(yè)務(wù)量通過API上報(bào)給所述QPS計(jì)算服務(wù)器。
其中,所述QPS分配信息包括業(yè)務(wù)量比例;
所述QPS計(jì)算服務(wù)器根據(jù)所述業(yè)務(wù)服務(wù)器上報(bào)的業(yè)務(wù)信息,得到預(yù)設(shè)的第二時(shí)間段內(nèi)所述業(yè)務(wù)服務(wù)器的QPS分配信息,包括:
所述QPS計(jì)算服務(wù)器根據(jù)所述業(yè)務(wù)服務(wù)器上報(bào)的第一業(yè)務(wù)量,累加得到預(yù)設(shè)的第二時(shí)間段內(nèi)所述系統(tǒng)中所有所述業(yè)務(wù)服務(wù)器的總業(yè)務(wù)量和所述業(yè)務(wù)服務(wù)器的單機(jī)業(yè)務(wù)量;
所述QPS計(jì)算服務(wù)器根據(jù)所述總業(yè)務(wù)量和所述單機(jī)業(yè)務(wù)量,計(jì)算得到所述業(yè)務(wù)服務(wù)器的業(yè)務(wù)量比例。
其中,所述QPS分配信息包括QPS分量;
所述QPS計(jì)算服務(wù)器根據(jù)所述業(yè)務(wù)服務(wù)器上報(bào)的業(yè)務(wù)信息,得到預(yù)設(shè)的第二時(shí)間段內(nèi)所述業(yè)務(wù)服務(wù)器的QPS分配信息,包括:
所述QPS計(jì)算服務(wù)器根據(jù)所述業(yè)務(wù)服務(wù)器上報(bào)的第一業(yè)務(wù)量,累加得到預(yù)設(shè)的第二時(shí)間段內(nèi)所述系統(tǒng)中所有所述業(yè)務(wù)服務(wù)器的總業(yè)務(wù)量和所述業(yè)務(wù)服務(wù)器的單機(jī)業(yè)務(wù)量;
所述QPS計(jì)算服務(wù)器根據(jù)所述總業(yè)務(wù)量和所述單機(jī)業(yè)務(wù)量,計(jì)算得到所述業(yè)務(wù)服務(wù)器的業(yè)務(wù)量比例;
根據(jù)所述業(yè)務(wù)量比例和預(yù)設(shè)的QPS總量計(jì)算得到所述業(yè)務(wù)服務(wù)器的QPS分量。
其中,所述根據(jù)所述QPS分配信息進(jìn)行流量控制包括:
所述業(yè)務(wù)服務(wù)器根據(jù)獲取的所述業(yè)務(wù)量比例和預(yù)設(shè)的QPS總量計(jì)算得到QPS分量;
所述業(yè)務(wù)服務(wù)器根據(jù)所述QPS分量進(jìn)行流量控制。
本發(fā)明實(shí)施例提供一種信息處理方法,應(yīng)用于業(yè)務(wù)服務(wù)器,所述方法包括:
獲取預(yù)設(shè)的第一時(shí)間段內(nèi)所述業(yè)務(wù)服務(wù)器的業(yè)務(wù)信息,并通過應(yīng)用程序編程接口API上報(bào)所述業(yè)務(wù)信息給所述QPS計(jì)算服務(wù)器;以使所述QPS計(jì)算服務(wù)器根據(jù)所述業(yè)務(wù)信息得到QPS分配信息,通過API將所述QPS分配信息寫入第一內(nèi)存,并將所述第一內(nèi)存中的QPS分配信息分發(fā)給對(duì)應(yīng)的所述業(yè)務(wù)服務(wù)器的第二內(nèi)存;
通過API從所述第二內(nèi)存中獲取QPS分配信息,并根據(jù)所述QPS分配信息進(jìn)行流量控制。
其中,所述QPS分配信息包括業(yè)務(wù)量比例;
所述根據(jù)所述QPS分配信息進(jìn)行流量控制包括:
根據(jù)獲取的所述業(yè)務(wù)量比例和預(yù)設(shè)的QPS總量計(jì)算得到QPS分量;
根據(jù)所述QPS分量進(jìn)行流量控制。
本發(fā)明實(shí)施例提供一種信息處理方法,應(yīng)用于QPS計(jì)算服務(wù)器,所述方法包括:
根據(jù)業(yè)務(wù)服務(wù)器應(yīng)用程序編程接口API上報(bào)的業(yè)務(wù)信息,得到預(yù)設(shè)的第二時(shí)間段內(nèi)所述業(yè)務(wù)服務(wù)器的QPS分配信息,并通過API將所述業(yè)務(wù)服務(wù)器的QPS分配信息寫入第一內(nèi)存;所述業(yè)務(wù)信息是業(yè)務(wù)服務(wù)器在預(yù)設(shè)的第一時(shí)間段內(nèi)獲取的;
將所述第一內(nèi)存中的QPS分配信息分發(fā)給所述業(yè)務(wù)服務(wù)器對(duì)應(yīng)的第二內(nèi)存;以使所述業(yè)務(wù)服務(wù)器通過API從所述第二內(nèi)存中獲取QPS分配信息,并根據(jù)所述QPS分配信息進(jìn)行流量控制。
其中,所述業(yè)務(wù)信息包括第一業(yè)務(wù)量,所述QPS分配信息包括業(yè)務(wù)量比例;
所述根據(jù)所述業(yè)務(wù)服務(wù)器上報(bào)的業(yè)務(wù)信息,得到預(yù)設(shè)的第二時(shí)間段內(nèi)所述業(yè)務(wù)服務(wù)器的QPS分配信息,包括,
根據(jù)所述業(yè)務(wù)服務(wù)器上報(bào)的第一業(yè)務(wù)量,累加得到預(yù)設(shè)的第二時(shí)間段內(nèi)系統(tǒng)中所有所述業(yè)務(wù)服務(wù)器的總業(yè)務(wù)量和所述業(yè)務(wù)服務(wù)器的單機(jī)業(yè)務(wù)量;
根據(jù)所述總業(yè)務(wù)量和所述單機(jī)業(yè)務(wù)量,計(jì)算得到所述業(yè)務(wù)服務(wù)器的業(yè)務(wù)量比例。
其中,所述業(yè)務(wù)信息包括第一業(yè)務(wù)量,所述QPS分配信息包括QPS分量;
所述根據(jù)所述業(yè)務(wù)服務(wù)器上報(bào)的業(yè)務(wù)信息,得到預(yù)設(shè)的第二時(shí)間段內(nèi)所述業(yè)務(wù)服務(wù)器的QPS分配信息,包括,
根據(jù)所述業(yè)務(wù)服務(wù)器上報(bào)的第一業(yè)務(wù)量,累加得到預(yù)設(shè)的第二時(shí)間段內(nèi)系統(tǒng)中所有所述業(yè)務(wù)服務(wù)器的總業(yè)務(wù)量和所述業(yè)務(wù)服務(wù)器的單機(jī)業(yè)務(wù)量;
根據(jù)所述總業(yè)務(wù)量和所述單機(jī)業(yè)務(wù)量,計(jì)算得到所述業(yè)務(wù)服務(wù)器的業(yè)務(wù)量比例;
根據(jù)所述業(yè)務(wù)量比例和預(yù)設(shè)的QPS總量計(jì)算得到所述業(yè)務(wù)服務(wù)器的QPS分量。
本發(fā)明實(shí)施例提供一種信息處理系統(tǒng),所述系統(tǒng)包括QPS計(jì)算服務(wù)器和業(yè)務(wù)服務(wù)器;
所述業(yè)務(wù)服務(wù)器,用于獲取預(yù)設(shè)的第一時(shí)間段內(nèi)自身的業(yè)務(wù)信息,并通過應(yīng)用程序編程接口API上報(bào)所述業(yè)務(wù)信息給QPS計(jì)算服務(wù)器;還用于通過API從第二內(nèi)存中獲取QPS分配信息,并根據(jù)所述QPS分配信息進(jìn)行流量控制;
所述QPS計(jì)算服務(wù)器,用于根據(jù)所述業(yè)務(wù)服務(wù)器上報(bào)的業(yè)務(wù)信息,得到預(yù)設(shè)的第二時(shí)間段內(nèi)所述業(yè)務(wù)服務(wù)器的QPS分配信息,并通過API將所述業(yè)務(wù)服務(wù)器的QPS分配信息寫入第一內(nèi)存;還用于將所述第一內(nèi)存中的QPS分配信息分發(fā)給所述業(yè)務(wù)服務(wù)器對(duì)應(yīng)的第二內(nèi)存;
其中,所述業(yè)務(wù)信息包括第一業(yè)務(wù)量;
所述業(yè)務(wù)服務(wù)器,具體用于統(tǒng)計(jì)自身預(yù)設(shè)的第一時(shí)間段內(nèi)有效業(yè)務(wù)處理完成的次數(shù),得到所述第一業(yè)務(wù)量,將統(tǒng)計(jì)得到的所述第一業(yè)務(wù)量通過API上報(bào)給所述QPS計(jì)算服務(wù)器。
其中,所述QPS分配信息包括業(yè)務(wù)量比例;
所述QPS計(jì)算服務(wù)器,具體用于根據(jù)所述業(yè)務(wù)服務(wù)器上報(bào)的第一業(yè)務(wù)量,累加得到預(yù)設(shè)的第二時(shí)間段內(nèi)所述系統(tǒng)中所有所述業(yè)務(wù)服務(wù)器的總業(yè)務(wù)量和所述業(yè)務(wù)服務(wù)器的單機(jī)業(yè)務(wù)量;
根據(jù)所述總業(yè)務(wù)量和所述單機(jī)業(yè)務(wù)量,計(jì)算得到所述業(yè)務(wù)服務(wù)器的業(yè)務(wù)量 比例。
其中,所述QPS分配信息包括QPS分量;
所述QPS計(jì)算服務(wù)器,具體用于根據(jù)所述業(yè)務(wù)服務(wù)器上報(bào)的第一業(yè)務(wù)量,累加得到預(yù)設(shè)的第二時(shí)間段內(nèi)所述系統(tǒng)中所有所述業(yè)務(wù)服務(wù)器的總業(yè)務(wù)量和所述業(yè)務(wù)服務(wù)器的單機(jī)業(yè)務(wù)量;
根據(jù)所述總業(yè)務(wù)量和所述單機(jī)業(yè)務(wù)量,計(jì)算得到所述業(yè)務(wù)服務(wù)器的業(yè)務(wù)量比例;
根據(jù)所述業(yè)務(wù)量比例和預(yù)設(shè)的QPS總量計(jì)算得到所述業(yè)務(wù)服務(wù)器的QPS分量。
其中,所述業(yè)務(wù)服務(wù)器,具體用于根據(jù)獲取的所述業(yè)務(wù)量比例和預(yù)設(shè)的QPS總量計(jì)算得到QPS分量;
所述業(yè)務(wù)服務(wù)器根據(jù)所述QPS分量進(jìn)行流量控制。
本發(fā)明實(shí)施例提供一種業(yè)務(wù)服務(wù)器,應(yīng)用于信息處理系統(tǒng),所述系統(tǒng)還包括QPS計(jì)算服務(wù)器;所述業(yè)務(wù)服務(wù)器包括:
處理單元,用于獲取預(yù)設(shè)的第一時(shí)間段內(nèi)所述業(yè)務(wù)服務(wù)器的業(yè)務(wù)信息;
上報(bào)單元,用于通過應(yīng)用程序編程接口API上報(bào)所述業(yè)務(wù)信息給所述QPS計(jì)算服務(wù)器;
讀內(nèi)存單元,用于通過API從第二內(nèi)存中獲取QPS分配信息;所述QPS分配信息是所述QPS計(jì)算服務(wù)器根據(jù)所述業(yè)務(wù)信息得到的,并分發(fā)給對(duì)應(yīng)的所述業(yè)務(wù)服務(wù)器的第二內(nèi)存的;
所述處理單元,還用于根據(jù)所述QPS分配信息進(jìn)行流量控制。
其中,所述QPS分配信息包括業(yè)務(wù)量比例;
所述處理單元,具體用于根據(jù)獲取的所述業(yè)務(wù)量比例和預(yù)設(shè)的QPS總量計(jì)算得到QPS分量;
根據(jù)所述QPS分量進(jìn)行流量控制。
本發(fā)明實(shí)施例提供一種QPS計(jì)算服務(wù)器,應(yīng)用于信息處理系統(tǒng),所述系統(tǒng)還包括業(yè)務(wù)服務(wù)器;所述QPS計(jì)算服務(wù)器包括:
計(jì)算單元,用于根據(jù)業(yè)務(wù)服務(wù)器通過應(yīng)用程序編程接口API上報(bào)的業(yè)務(wù)信息,得到預(yù)設(shè)的第二時(shí)間段內(nèi)所述業(yè)務(wù)服務(wù)器的QPS分配信息;所述業(yè)務(wù)信息是業(yè)務(wù)服務(wù)器在預(yù)設(shè)的第一時(shí)間段內(nèi)獲取的;
寫內(nèi)存單元,用于通過API將所述業(yè)務(wù)服務(wù)器的QPS分配信息寫入第一內(nèi)存;
內(nèi)存分發(fā)單元,用于將所述第一內(nèi)存中的QPS分配信息分發(fā)給所述業(yè)務(wù)服務(wù)器對(duì)應(yīng)的第二內(nèi)存;以使所述業(yè)務(wù)服務(wù)器通過API從所述第二內(nèi)存中獲取QPS分配信息,并根據(jù)所述QPS分配信息進(jìn)行流量控制。
其中,所述業(yè)務(wù)信息包括第一業(yè)務(wù)量,所述QPS分配信息包括業(yè)務(wù)量比例;
所述計(jì)算單元,具體用于根據(jù)所述業(yè)務(wù)服務(wù)器上報(bào)的第一業(yè)務(wù)量,累加得到預(yù)設(shè)的第二時(shí)間段內(nèi)所述系統(tǒng)中所有所述業(yè)務(wù)服務(wù)器的總業(yè)務(wù)量和所述業(yè)務(wù)服務(wù)器的單機(jī)業(yè)務(wù)量;
根據(jù)所述總業(yè)務(wù)量和所述單機(jī)業(yè)務(wù)量,計(jì)算得到所述業(yè)務(wù)服務(wù)器的業(yè)務(wù)量比例。
其中,所述業(yè)務(wù)信息包括第一業(yè)務(wù)量,所述QPS分配信息包括QPS分量;
所述計(jì)算單元,具體用于根據(jù)所述業(yè)務(wù)服務(wù)器上報(bào)的第一業(yè)務(wù)量,累加得到預(yù)設(shè)的第二時(shí)間段內(nèi)所述系統(tǒng)中所有所述業(yè)務(wù)服務(wù)器的總業(yè)務(wù)量和所述業(yè)務(wù)服務(wù)器的單機(jī)業(yè)務(wù)量;
根據(jù)所述總業(yè)務(wù)量和所述單機(jī)業(yè)務(wù)量,計(jì)算得到所述業(yè)務(wù)服務(wù)器的業(yè)務(wù)量比例;
根據(jù)所述業(yè)務(wù)量比例和預(yù)設(shè)的QPS總量計(jì)算得到所述業(yè)務(wù)服務(wù)器的QPS分量。
由上可知,本發(fā)明實(shí)施例的技術(shù)方案應(yīng)用于信息處理系統(tǒng),所述系統(tǒng)包括QPS計(jì)算服務(wù)器和業(yè)務(wù)服務(wù)器,所述業(yè)務(wù)服務(wù)器分別獲取預(yù)設(shè)的第一時(shí)間段內(nèi)自身的業(yè)務(wù)信息,并通過應(yīng)用程序編程接口API上報(bào)所述業(yè)務(wù)信息給所述QPS計(jì)算服務(wù)器;所述QPS計(jì)算服務(wù)器根據(jù)所述業(yè)務(wù)服務(wù)器上報(bào)的業(yè)務(wù)信息,得到預(yù)設(shè)的第二時(shí)間段內(nèi)所述業(yè)務(wù)服務(wù)器的QPS分配信息,并通過API將所述業(yè)務(wù) 服務(wù)器的QPS分配信息寫入第一內(nèi)存;所述QPS計(jì)算服務(wù)器將所述第一內(nèi)存中的QPS分配信息分發(fā)給所述業(yè)務(wù)服務(wù)器對(duì)應(yīng)的第二內(nèi)存;所述業(yè)務(wù)服務(wù)器通過API從所述第二內(nèi)存中獲取QPS分配信息,并根據(jù)所述QPS分配信息進(jìn)行流量控制。
由此,本本發(fā)明實(shí)施例以分鐘為粒度實(shí)時(shí)更新個(gè)業(yè)務(wù)服務(wù)器上的QPS分配。當(dāng)某地流量出現(xiàn)峰值時(shí),QPS計(jì)算服務(wù)器會(huì)立即感知到流量上的傾斜。因此,QPS計(jì)算服務(wù)器會(huì)以當(dāng)前一分鐘的單機(jī)流量比例為依據(jù),減少流量少的業(yè)務(wù)服務(wù)器的QPS,重新分配更多QPS給有峰值的業(yè)務(wù)服務(wù)器,讓這些業(yè)務(wù)服務(wù)器接受更多的有效流量,避免因QPS分配問題而攔截流量。
本發(fā)明實(shí)施例根據(jù)網(wǎng)絡(luò)收包進(jìn)行計(jì)算,計(jì)算過程是在內(nèi)存完成,計(jì)算結(jié)果通過網(wǎng)絡(luò)發(fā)包發(fā)送給業(yè)務(wù)服務(wù)器,全程不會(huì)寫磁盤。因此,不會(huì)因?yàn)榇疟P讀寫速度而影響計(jì)算的速度,也不會(huì)因?yàn)榇疟P故障導(dǎo)致無法正常計(jì)算QPS。
本發(fā)明實(shí)施例業(yè)務(wù)服務(wù)器只需要使用內(nèi)存分發(fā)引擎的應(yīng)用程序編程接口(Application Programming Interface,API)即可,無需考慮數(shù)據(jù)的更新和生效問題。
附圖說明
圖1為業(yè)務(wù)系統(tǒng)的結(jié)構(gòu)示意圖;
圖2為本發(fā)明提供的一種信息處理方法的第一實(shí)施例的流程示意圖;
圖3為本發(fā)明提供的一種信息處理方法的第二實(shí)施例的流程示意圖;
圖4為本發(fā)明提供的一種信息處理方法的第三實(shí)施例的流程示意圖;
圖5為本發(fā)明提供的另一種信息處理方法的實(shí)施例的流程示意圖;
圖6為本發(fā)明提供的又一種信息處理方法的實(shí)施例的流程示意圖;
圖7為本發(fā)明提供的一種信息處理系統(tǒng)的實(shí)施例的結(jié)構(gòu)示意圖;
圖8為本發(fā)明提供的業(yè)務(wù)服務(wù)器的實(shí)施例的結(jié)構(gòu)示意圖;
圖9為本發(fā)明提供的QPS計(jì)算服務(wù)器的實(shí)施例的結(jié)構(gòu)示意圖;
圖10為本發(fā)明提供的一種信息處理方法的應(yīng)用實(shí)例的示意圖。
具體實(shí)施方式
本發(fā)明提供的一種信息處理方法的第一實(shí)施例,應(yīng)用于信息處理系統(tǒng),所述系統(tǒng)包括QPS計(jì)算服務(wù)器和業(yè)務(wù)服務(wù)器,如圖2所示,所述方法包括:
步驟201、所述業(yè)務(wù)服務(wù)器分別獲取預(yù)設(shè)的第一時(shí)間段內(nèi)自身的業(yè)務(wù)信息,并通過應(yīng)用程序編程接口API上報(bào)所述業(yè)務(wù)信息給所述QPS計(jì)算服務(wù)器。
這里,所述業(yè)務(wù)信息包括第一業(yè)務(wù)量;所述業(yè)務(wù)服務(wù)器分別獲取預(yù)設(shè)的第一時(shí)間段內(nèi)自身的業(yè)務(wù)信息,并通過API上報(bào)所述業(yè)務(wù)信息給QPS計(jì)算服務(wù)器,包括:
所述業(yè)務(wù)服務(wù)器分別統(tǒng)計(jì)自身預(yù)設(shè)的第一時(shí)間段內(nèi)有效業(yè)務(wù)處理完成的次數(shù),得到所述第一業(yè)務(wù)量;
所述業(yè)務(wù)服務(wù)器分別將統(tǒng)計(jì)得到的所述第一業(yè)務(wù)量通過API上報(bào)給所述QPS計(jì)算服務(wù)器。
可以理解的是,所述第一時(shí)間段可以設(shè)置為1秒鐘,即每秒上報(bào)一次第一業(yè)務(wù)量。在實(shí)際應(yīng)用中,可以對(duì)1秒內(nèi)處理的有效業(yè)務(wù)數(shù)量進(jìn)行累加計(jì)數(shù),即每完成一個(gè)有效業(yè)務(wù)則計(jì)數(shù)加1,上報(bào)完成后將計(jì)數(shù)清空為0,下一個(gè)1秒重新計(jì)數(shù)。具體的,可以根據(jù)業(yè)務(wù)ID針對(duì)每種都進(jìn)行業(yè)務(wù)統(tǒng)計(jì)。1秒鐘時(shí)間到達(dá)后將當(dāng)前累加的數(shù)值與業(yè)務(wù)ID一起組udp包發(fā)送給所述QPS計(jì)算服務(wù)器。組包格式可以為:
pkg=dw_key_value_count+key_value
key_value=(topic_id+sub_id)+ip+count
dw_key_value_count表示本包總的keyValue個(gè)數(shù)
topic_id表示主業(yè)務(wù)id
sub_id表示子業(yè)務(wù)id
ip表示業(yè)務(wù)服務(wù)器ip
count表示該業(yè)務(wù)服務(wù)器上當(dāng)前一秒的有效業(yè)務(wù)請(qǐng)求次數(shù)
步驟202、所述QPS計(jì)算服務(wù)器根據(jù)所述業(yè)務(wù)服務(wù)器上報(bào)的業(yè)務(wù)信息,得到預(yù)設(shè)的第二時(shí)間段內(nèi)所述業(yè)務(wù)服務(wù)器的QPS分配信息,并通過API將所述業(yè) 務(wù)服務(wù)器的QPS分配信息寫入第一內(nèi)存。
在一實(shí)施例中,所述QPS分配信息包括業(yè)務(wù)量比例;所述QPS計(jì)算服務(wù)器根據(jù)所述業(yè)務(wù)服務(wù)器上報(bào)的業(yè)務(wù)信息,得到預(yù)設(shè)的第二時(shí)間段內(nèi)所述業(yè)務(wù)服務(wù)器的QPS分配信息,包括,
所述QPS計(jì)算服務(wù)器根據(jù)所述業(yè)務(wù)服務(wù)器上報(bào)的第一業(yè)務(wù)量,累加得到預(yù)設(shè)的第二時(shí)間段內(nèi)所述系統(tǒng)中所有所述業(yè)務(wù)服務(wù)器的總業(yè)務(wù)量和所述業(yè)務(wù)服務(wù)器的單機(jī)業(yè)務(wù)量;
所述QPS計(jì)算服務(wù)器根據(jù)所述總業(yè)務(wù)量和所述單機(jī)業(yè)務(wù)量,計(jì)算得到所述業(yè)務(wù)服務(wù)器的業(yè)務(wù)量比例。
在一實(shí)施例中,所述QPS分配信息包括QPS分量;所述QPS計(jì)算服務(wù)器根據(jù)所述業(yè)務(wù)服務(wù)器上報(bào)的業(yè)務(wù)信息,得到預(yù)設(shè)的第二時(shí)間段內(nèi)所述業(yè)務(wù)服務(wù)器的QPS分配信息,包括,
所述QPS計(jì)算服務(wù)器根據(jù)所述業(yè)務(wù)服務(wù)器上報(bào)的第一業(yè)務(wù)量,累加得到預(yù)設(shè)的第二時(shí)間段內(nèi)所述系統(tǒng)中所有所述業(yè)務(wù)服務(wù)器的總業(yè)務(wù)量和所述業(yè)務(wù)服務(wù)器的單機(jī)業(yè)務(wù)量;
所述QPS計(jì)算服務(wù)器根據(jù)所述總業(yè)務(wù)量和所述單機(jī)業(yè)務(wù)量,計(jì)算得到所述業(yè)務(wù)服務(wù)器的業(yè)務(wù)量比例;
根據(jù)所述業(yè)務(wù)量比例和預(yù)設(shè)的QPS總量計(jì)算得到所述業(yè)務(wù)服務(wù)器的QPS分量。
可以理解的是,所述第二時(shí)間段可以設(shè)置為1分鐘,即所述QPS計(jì)算服務(wù)器每分鐘獲取所述業(yè)務(wù)服務(wù)器的60次上報(bào)。
當(dāng)然,在實(shí)際應(yīng)用中,可以根據(jù)實(shí)際情況對(duì)所述第一時(shí)間段和所述第二時(shí)間段進(jìn)行設(shè)置,可以采用定時(shí)器進(jìn)行計(jì)時(shí)。
具體的,當(dāng)1分鐘定時(shí)器到達(dá)時(shí),所述QPS計(jì)算服務(wù)器按照業(yè)務(wù)ID進(jìn)行一輪業(yè)務(wù)量的累加,包括:將同一業(yè)務(wù)ID的同一業(yè)務(wù)服務(wù)器IP下的業(yè)務(wù)量進(jìn)行累加得到該業(yè)務(wù)的單機(jī)業(yè)務(wù)量,將同一業(yè)務(wù)ID的各個(gè)業(yè)務(wù)服務(wù)器IP下的業(yè)務(wù)量進(jìn)行累加得到該業(yè)務(wù)的總業(yè)務(wù)量,將所述業(yè)務(wù)服務(wù)器的單機(jī)業(yè)務(wù)量除以總 業(yè)務(wù)量,得到所述業(yè)務(wù)服務(wù)器該業(yè)務(wù)的業(yè)務(wù)量比例。
步驟203、所述QPS計(jì)算服務(wù)器將所述第一內(nèi)存中的QPS分配信息分發(fā)給所述業(yè)務(wù)服務(wù)器對(duì)應(yīng)的第二內(nèi)存。
步驟204、所述業(yè)務(wù)服務(wù)器通過API從所述第二內(nèi)存中獲取QPS分配信息,并根據(jù)所述QPS分配信息進(jìn)行流量控制。
這里,當(dāng)所述QPS分配信息包括業(yè)務(wù)量比例時(shí),所述根據(jù)所述QPS分配信息進(jìn)行流量控制包括:
所述業(yè)務(wù)服務(wù)器根據(jù)獲取的所述業(yè)務(wù)量比例和預(yù)設(shè)的QPS總量計(jì)算得到QPS分量;
所述業(yè)務(wù)服務(wù)器根據(jù)所述QPS分量進(jìn)行流量控制。
不難理解,如果所述業(yè)務(wù)服務(wù)器獲取不到本機(jī)的QPS分配信息則說明是第一次上報(bào),則第一分鐘不進(jìn)行QPS限制,從第二分鐘開始根據(jù)下發(fā)的QPS分配信息進(jìn)行QPS限制。
這里需要說明的是,所述第一內(nèi)存和所述第二內(nèi)存可以都設(shè)置在所述QPS計(jì)算服務(wù)器,也可以所述第一內(nèi)存設(shè)置在所述QPS計(jì)算服務(wù)器,所述第二內(nèi)存設(shè)置在所述業(yè)務(wù)服務(wù)器,當(dāng)然所述第一內(nèi)存和所述第二內(nèi)存也可以都設(shè)置在所述業(yè)務(wù)服務(wù)器,也就是說本發(fā)明對(duì)所述第一內(nèi)存和所述第二內(nèi)存設(shè)置在哪不做任何限定。
本發(fā)明提供的一種信息處理方法的第二實(shí)施例,應(yīng)用于信息處理系統(tǒng),所述系統(tǒng)包括QPS計(jì)算服務(wù)器和至少兩個(gè)業(yè)務(wù)服務(wù)器,如圖3所示,所述方法包括:
步驟301、各所述業(yè)務(wù)服務(wù)器分別統(tǒng)計(jì)自身預(yù)設(shè)的第一時(shí)間段內(nèi)有效業(yè)務(wù)處理完成的次數(shù),得到所述第一業(yè)務(wù)量。
步驟302、各所述業(yè)務(wù)服務(wù)器分別將統(tǒng)計(jì)得到的所述第一業(yè)務(wù)量通過API上報(bào)給所述QPS計(jì)算服務(wù)器。
步驟303、所述QPS計(jì)算服務(wù)器根據(jù)各所述業(yè)務(wù)服務(wù)器上報(bào)的第一業(yè)務(wù)量,累加得到預(yù)設(shè)的第二時(shí)間段內(nèi)所有所述業(yè)務(wù)服務(wù)器的總業(yè)務(wù)量和各所述業(yè)務(wù)服 務(wù)器的單機(jī)業(yè)務(wù)量。
步驟304、所述QPS計(jì)算服務(wù)器根據(jù)所述總業(yè)務(wù)量和各所述單機(jī)業(yè)務(wù)量,計(jì)算得到各所述業(yè)務(wù)服務(wù)器的業(yè)務(wù)量比例。
步驟305、所述QPS計(jì)算服務(wù)器通過API將各所述業(yè)務(wù)服務(wù)器的業(yè)務(wù)量比例寫入第一內(nèi)存。
步驟306、所述QPS計(jì)算服務(wù)器將所述第一內(nèi)存中的業(yè)務(wù)量比例分發(fā)給各所述業(yè)務(wù)服務(wù)器對(duì)應(yīng)的第二內(nèi)存。
步驟307、所述業(yè)務(wù)服務(wù)器通過API從所述第二內(nèi)存中獲取業(yè)務(wù)量比例。
步驟308、所述業(yè)務(wù)服務(wù)器根據(jù)獲取的所述業(yè)務(wù)量比例和預(yù)設(shè)的QPS總量計(jì)算得到QPS分量。
步驟309、所述業(yè)務(wù)服務(wù)器根據(jù)所述QPS分量進(jìn)行流量控制。
本發(fā)明提供的一種信息處理方法的第三實(shí)施例,應(yīng)用于信息處理系統(tǒng),所述系統(tǒng)包括QPS計(jì)算服務(wù)器和至少兩個(gè)業(yè)務(wù)服務(wù)器,如圖4所示,所述方法包括:
步驟401、各所述業(yè)務(wù)服務(wù)器分別統(tǒng)計(jì)自身預(yù)設(shè)的第一時(shí)間段內(nèi)有效業(yè)務(wù)處理完成的次數(shù),得到所述第一業(yè)務(wù)量。
步驟402、各所述業(yè)務(wù)服務(wù)器分別將統(tǒng)計(jì)得到的所述第一業(yè)務(wù)量通過API上報(bào)給所述QPS計(jì)算服務(wù)器。
步驟403、所述QPS計(jì)算服務(wù)器根據(jù)各所述業(yè)務(wù)服務(wù)器上報(bào)的第一業(yè)務(wù)量,累加得到預(yù)設(shè)的第二時(shí)間段內(nèi)所有所述業(yè)務(wù)服務(wù)器的總業(yè)務(wù)量和各所述業(yè)務(wù)服務(wù)器的單機(jī)業(yè)務(wù)量。
步驟404、所述QPS計(jì)算服務(wù)器根據(jù)所述總業(yè)務(wù)量和各所述單機(jī)業(yè)務(wù)量,計(jì)算得到各所述業(yè)務(wù)服務(wù)器的業(yè)務(wù)量比例。
步驟405、所述QPS計(jì)算服務(wù)器根據(jù)各所述業(yè)務(wù)量比例和預(yù)設(shè)的QPS總量計(jì)算得到各所述業(yè)務(wù)服務(wù)器的QPS分量。
步驟406、所述QPS計(jì)算服務(wù)器通過API將各所述業(yè)務(wù)服務(wù)器的QPS分量寫入第一內(nèi)存。
步驟407、所述QPS計(jì)算服務(wù)器將所述第一內(nèi)存中的QPS分量分發(fā)給各所述業(yè)務(wù)服務(wù)器對(duì)應(yīng)的第二內(nèi)存。
步驟408、所述業(yè)務(wù)服務(wù)器通過API從所述第二內(nèi)存中獲取QPS分量。
步驟409、所述業(yè)務(wù)服務(wù)器根據(jù)所述QPS分量進(jìn)行流量控制。
本發(fā)明實(shí)施例提供的另一種信息處理方法,應(yīng)用于業(yè)務(wù)服務(wù)器,如圖5所示,所述方法包括:
步驟501、獲取預(yù)設(shè)的第一時(shí)間段內(nèi)所述業(yè)務(wù)服務(wù)器的業(yè)務(wù)信息,并通過應(yīng)用程序編程接口API上報(bào)所述業(yè)務(wù)信息給所述QPS計(jì)算服務(wù)器。
這樣,可以使所述QPS計(jì)算服務(wù)器根據(jù)所述業(yè)務(wù)信息得到QPS分配信息,通過API將所述QPS分配信息寫入第一內(nèi)存,并將所述第一內(nèi)存中的QPS分配信息分發(fā)給所述業(yè)務(wù)服務(wù)器對(duì)應(yīng)的第二內(nèi)存。
這里,所述業(yè)務(wù)信息包括第一業(yè)務(wù)量;所述獲取預(yù)設(shè)的第一時(shí)間段內(nèi)所述業(yè)務(wù)服務(wù)器的業(yè)務(wù)信息,并通過API上報(bào)所述業(yè)務(wù)信息給QPS計(jì)算服務(wù)器,包括:統(tǒng)計(jì)預(yù)設(shè)的第一時(shí)間段內(nèi)所述業(yè)務(wù)服務(wù)器的有效業(yè)務(wù)處理完成的次數(shù),得到所述第一業(yè)務(wù)量;將統(tǒng)計(jì)得到的所述第一業(yè)務(wù)量通過API上報(bào)給所述QPS計(jì)算服務(wù)器。
步驟502、通過API從所述第二內(nèi)存中獲取QPS分配信息,并根據(jù)所述QPS分配信息進(jìn)行流量控制。
這里,所述QPS分配信息可以包括業(yè)務(wù)量比例;所述根據(jù)所述QPS分配信息進(jìn)行流量控制包括:根據(jù)獲取的所述業(yè)務(wù)量比例和預(yù)設(shè)的QPS總量計(jì)算得到QPS分量;根據(jù)所述QPS分量進(jìn)行流量控制。
本發(fā)明實(shí)施例提供的又一種信息處理方法,應(yīng)用于QPS計(jì)算服務(wù)器,如圖6所示,所述方法包括:
步驟601,根據(jù)業(yè)務(wù)服務(wù)器應(yīng)用程序編程接口API上報(bào)的業(yè)務(wù)信息,得到預(yù)設(shè)的第二時(shí)間段內(nèi)所述業(yè)務(wù)服務(wù)器的QPS分配信息,并通過API將所述業(yè)務(wù)服務(wù)器的QPS分配信息寫入第一內(nèi)存。
這里,所述業(yè)務(wù)信息是業(yè)務(wù)服務(wù)器在預(yù)設(shè)的第一時(shí)間段內(nèi)獲取的。
在一實(shí)施例中,所述業(yè)務(wù)信息包括第一業(yè)務(wù)量,所述QPS分配信息包括業(yè)務(wù)量比例;所述根據(jù)所述業(yè)務(wù)服務(wù)器上報(bào)的業(yè)務(wù)信息,得到預(yù)設(shè)的第二時(shí)間段內(nèi)所述業(yè)務(wù)服務(wù)器的QPS分配信息,包括:
根據(jù)所述業(yè)務(wù)服務(wù)器上報(bào)的第一業(yè)務(wù)量,累加得到預(yù)設(shè)的第二時(shí)間段內(nèi)系統(tǒng)中所有所述業(yè)務(wù)服務(wù)器的總業(yè)務(wù)量和所述業(yè)務(wù)服務(wù)器的單機(jī)業(yè)務(wù)量;
根據(jù)所述總業(yè)務(wù)量和所述單機(jī)業(yè)務(wù)量,計(jì)算得到所述業(yè)務(wù)服務(wù)器的業(yè)務(wù)量比例。
在一實(shí)施例中,所述業(yè)務(wù)信息包括第一業(yè)務(wù)量,所述QPS分配信息包括QPS分量;所述根據(jù)所述業(yè)務(wù)服務(wù)器上報(bào)的業(yè)務(wù)信息,得到預(yù)設(shè)的第二時(shí)間段內(nèi)所述業(yè)務(wù)服務(wù)器的QPS分配信息,包括:
根據(jù)所述業(yè)務(wù)服務(wù)器上報(bào)的第一業(yè)務(wù)量,累加得到預(yù)設(shè)的第二時(shí)間段內(nèi)系統(tǒng)中所有所述業(yè)務(wù)服務(wù)器的總業(yè)務(wù)量和所述業(yè)務(wù)服務(wù)器的單機(jī)業(yè)務(wù)量;
根據(jù)所述總業(yè)務(wù)量和所述單機(jī)業(yè)務(wù)量,計(jì)算得到所述業(yè)務(wù)服務(wù)器的業(yè)務(wù)量比例;
根據(jù)所述業(yè)務(wù)量比例和預(yù)設(shè)的QPS總量計(jì)算得到所述業(yè)務(wù)服務(wù)器的QPS分量。
步驟602、將所述第一內(nèi)存中的QPS分配信息分發(fā)給所述業(yè)務(wù)服務(wù)器對(duì)應(yīng)的第二內(nèi)存。
這樣,可以使所述業(yè)務(wù)服務(wù)器通過API從所述第二內(nèi)存中獲取QPS分配信息,并根據(jù)所述QPS分配信息進(jìn)行流量控制。
本發(fā)明實(shí)施例提供一種信息處理系統(tǒng),如圖7所示,所述系統(tǒng)包括QPS計(jì)算服務(wù)器701和業(yè)務(wù)服務(wù)器702;
所述業(yè)務(wù)服務(wù)器702,用于獲取預(yù)設(shè)的第一時(shí)間段內(nèi)自身的業(yè)務(wù)信息,并通過應(yīng)用程序編程接口API上報(bào)所述業(yè)務(wù)信息給QPS計(jì)算服務(wù)器;還用于通過API從第二內(nèi)存中獲取QPS分配信息,并根據(jù)所述QPS分配信息進(jìn)行流量控制;
具體的,所述業(yè)務(wù)信息包括第一業(yè)務(wù)量;所述業(yè)務(wù)服務(wù)器702,具體用于統(tǒng)計(jì)自身預(yù)設(shè)的第一時(shí)間段內(nèi)有效業(yè)務(wù)處理完成的次數(shù),得到所述第一業(yè)務(wù)量, 將統(tǒng)計(jì)得到的所述第一業(yè)務(wù)量通過API上報(bào)給所述QPS計(jì)算服務(wù)器。
所述QPS計(jì)算服務(wù)器701,用于根據(jù)所述業(yè)務(wù)服務(wù)器上報(bào)的業(yè)務(wù)信息,得到預(yù)設(shè)的第二時(shí)間段內(nèi)所述業(yè)務(wù)服務(wù)器的QPS分配信息,并通過API將所述業(yè)務(wù)服務(wù)器的QPS分配信息寫入第一內(nèi)存;還用于將所述第一內(nèi)存中的QPS分配信息分發(fā)給所述業(yè)務(wù)服務(wù)器對(duì)應(yīng)的第二內(nèi)存;
在一實(shí)施例中,所述QPS分配信息包括業(yè)務(wù)量比例;所述QPS計(jì)算服務(wù)器701,具體用于根據(jù)所述業(yè)務(wù)服務(wù)器上報(bào)的第一業(yè)務(wù)量,累加得到預(yù)設(shè)的第二時(shí)間段內(nèi)所述系統(tǒng)中所有所述業(yè)務(wù)服務(wù)器的總業(yè)務(wù)量和所述業(yè)務(wù)服務(wù)器的單機(jī)業(yè)務(wù)量;
根據(jù)所述總業(yè)務(wù)量和所述單機(jī)業(yè)務(wù)量,計(jì)算得到所述業(yè)務(wù)服務(wù)器的業(yè)務(wù)量比例。
相應(yīng)的,所述業(yè)務(wù)服務(wù)器702,具體用于根據(jù)獲取的所述業(yè)務(wù)量比例和預(yù)設(shè)的QPS總量計(jì)算得到QPS分量;所述業(yè)務(wù)服務(wù)器根據(jù)所述QPS分量進(jìn)行流量控制。
在一實(shí)施例中,所述QPS分配信息包括QPS分量;所述QPS計(jì)算服務(wù)器701,具體用于根據(jù)所述業(yè)務(wù)服務(wù)器上報(bào)的第一業(yè)務(wù)量,累加得到預(yù)設(shè)的第二時(shí)間段內(nèi)所述系統(tǒng)中所有所述業(yè)務(wù)服務(wù)器的總業(yè)務(wù)量和所述業(yè)務(wù)服務(wù)器的單機(jī)業(yè)務(wù)量;
根據(jù)所述總業(yè)務(wù)量和所述單機(jī)業(yè)務(wù)量,計(jì)算得到所述業(yè)務(wù)服務(wù)器的業(yè)務(wù)量比例;
根據(jù)所述業(yè)務(wù)量比例和預(yù)設(shè)的QPS總量計(jì)算得到所述業(yè)務(wù)服務(wù)器的QPS分量。
本發(fā)明實(shí)施例提供一種業(yè)務(wù)服務(wù)器,如圖8所示,應(yīng)用于信息處理系統(tǒng),所述系統(tǒng)還包括QPS計(jì)算服務(wù)器;所述業(yè)務(wù)服務(wù)器包括:
處理單元801,用于獲取預(yù)設(shè)的第一時(shí)間段內(nèi)所述業(yè)務(wù)服務(wù)器的業(yè)務(wù)信息;
這里,所述業(yè)務(wù)信息包括第一業(yè)務(wù)量;處理單元801,具體用于統(tǒng)計(jì)預(yù)設(shè)的第一時(shí)間段內(nèi)所述業(yè)務(wù)服務(wù)器的有效業(yè)務(wù)處理完成的次數(shù),得到所述第一業(yè) 務(wù)量;將統(tǒng)計(jì)得到的所述第一業(yè)務(wù)量通過API上報(bào)給所述QPS計(jì)算服務(wù)器。
上報(bào)單元802,用于通過應(yīng)用程序編程接口API上報(bào)所述業(yè)務(wù)信息給所述QPS計(jì)算服務(wù)器;
讀內(nèi)存單元803,用于通過API從第二內(nèi)存中獲取QPS分配信息;所述QPS分配信息是所述QPS計(jì)算服務(wù)器根據(jù)所述業(yè)務(wù)信息得到的,并分發(fā)給對(duì)應(yīng)的所述業(yè)務(wù)服務(wù)器的第二內(nèi)存的;
所述處理單元801,還用于根據(jù)所述QPS分配信息進(jìn)行流量控制。
具體的,所述QPS分配信息包括業(yè)務(wù)量比例;所述處理單元801,具體用于根據(jù)獲取的所述業(yè)務(wù)量比例和預(yù)設(shè)的QPS總量計(jì)算得到QPS分量;
根據(jù)所述QPS分量進(jìn)行流量控制。
本發(fā)明實(shí)施例提供一種QPS計(jì)算服務(wù)器,如圖9所示,應(yīng)用于信息處理系統(tǒng),所述系統(tǒng)還包括業(yè)務(wù)服務(wù)器;所述QPS計(jì)算服務(wù)器包括:
計(jì)算單元901,用于根據(jù)業(yè)務(wù)服務(wù)器通過應(yīng)用程序編程接口API上報(bào)的業(yè)務(wù)信息,得到預(yù)設(shè)的第二時(shí)間段內(nèi)所述業(yè)務(wù)服務(wù)器的QPS分配信息;所述業(yè)務(wù)信息是業(yè)務(wù)服務(wù)器在預(yù)設(shè)的第一時(shí)間段內(nèi)獲取的;
在一實(shí)施例中,所述業(yè)務(wù)信息包括第一業(yè)務(wù)量,所述QPS分配信息包括業(yè)務(wù)量比例;所述計(jì)算單元901,具體用于根據(jù)所述業(yè)務(wù)服務(wù)器上報(bào)的第一業(yè)務(wù)量,累加得到預(yù)設(shè)的第二時(shí)間段內(nèi)所述系統(tǒng)中所有所述業(yè)務(wù)服務(wù)器的總業(yè)務(wù)量和所述業(yè)務(wù)服務(wù)器的單機(jī)業(yè)務(wù)量;
根據(jù)所述總業(yè)務(wù)量和所述單機(jī)業(yè)務(wù)量,計(jì)算得到所述業(yè)務(wù)服務(wù)器的業(yè)務(wù)量比例。
在一實(shí)施例中,所述業(yè)務(wù)信息包括第一業(yè)務(wù)量,所述QPS分配信息包括QPS分量;所述計(jì)算單元901,具體用于根據(jù)所述業(yè)務(wù)服務(wù)器上報(bào)的第一業(yè)務(wù)量,累加得到預(yù)設(shè)的第二時(shí)間段內(nèi)所述系統(tǒng)中所有所述業(yè)務(wù)服務(wù)器的總業(yè)務(wù)量和所述業(yè)務(wù)服務(wù)器的單機(jī)業(yè)務(wù)量;
根據(jù)所述總業(yè)務(wù)量和所述單機(jī)業(yè)務(wù)量,計(jì)算得到所述業(yè)務(wù)服務(wù)器的業(yè)務(wù)量比例;
根據(jù)所述業(yè)務(wù)量比例和預(yù)設(shè)的QPS總量計(jì)算得到所述業(yè)務(wù)服務(wù)器的QPS分量。
寫內(nèi)存單元902,用于通過API將所述業(yè)務(wù)服務(wù)器的QPS分配信息寫入第一內(nèi)存;
內(nèi)存分發(fā)單元903,用于將所述第一內(nèi)存中的QPS分配信息分發(fā)給所述業(yè)務(wù)服務(wù)器對(duì)應(yīng)的第二內(nèi)存;以使所述業(yè)務(wù)服務(wù)器通過API從所述第二內(nèi)存中獲取QPS分配信息,并根據(jù)所述QPS分配信息進(jìn)行流量控制。
本發(fā)明實(shí)施例以分鐘為粒度實(shí)時(shí)更新業(yè)務(wù)服務(wù)器上的QPS分配。當(dāng)某地流量出現(xiàn)峰值時(shí),QPS計(jì)算服務(wù)器會(huì)立即感知到流量上的傾斜。因此,QPS計(jì)算服務(wù)器會(huì)以當(dāng)前一分鐘的單機(jī)流量比例為依據(jù),減少流量少的業(yè)務(wù)服務(wù)器的QPS,重新分配更多QPS給有峰值的業(yè)務(wù)服務(wù)器,讓這些業(yè)務(wù)服務(wù)器接受更多的有效流量,避免因QPS分配問題而攔截流量。
本發(fā)明實(shí)施例根據(jù)網(wǎng)絡(luò)收包進(jìn)行計(jì)算,計(jì)算過程是在內(nèi)存完成,計(jì)算結(jié)果通過網(wǎng)絡(luò)發(fā)包發(fā)送給業(yè)務(wù)服務(wù)器,全程不會(huì)寫磁盤。因此,不會(huì)因?yàn)榇疟P讀寫速度而影響計(jì)算的速度,也不會(huì)因?yàn)榇疟P故障導(dǎo)致無法正常計(jì)算QPS。
本發(fā)明實(shí)施例業(yè)務(wù)服務(wù)器只需要使用內(nèi)存分發(fā)引擎的應(yīng)用程序編程接口(Application Programming Interface,API)即可,無需考慮數(shù)據(jù)的更新和生效問題。
下面結(jié)合圖10對(duì)本發(fā)明的一個(gè)應(yīng)用實(shí)例進(jìn)行介紹。
1、業(yè)務(wù)邏輯每完成一次有效業(yè)務(wù)處理,則計(jì)數(shù)加1。
2、每秒鐘調(diào)用上報(bào)API,進(jìn)行當(dāng)前秒數(shù)的業(yè)務(wù)量上報(bào)。計(jì)數(shù)累加結(jié)果為要上報(bào)的內(nèi)容,上報(bào)完成則清空計(jì)數(shù)。
3、計(jì)算單元每分鐘收集所有業(yè)務(wù)服務(wù)器的60次上報(bào),累加出總業(yè)務(wù)量和單機(jī)業(yè)務(wù)量,進(jìn)而得到各所述業(yè)務(wù)服務(wù)器的業(yè)務(wù)量比例。當(dāng)然,還可以根據(jù)QPS總量和業(yè)務(wù)量比例得到QPS分量。所述QPS總量可以預(yù)先寫入計(jì)算單元的配置中。
4、計(jì)算進(jìn)程調(diào)用寫內(nèi)存API,將QPS分量或業(yè)務(wù)量比例寫入內(nèi)存,交給 內(nèi)存分發(fā)單元。
5、內(nèi)存分發(fā)單元實(shí)時(shí)分發(fā)業(yè)務(wù)量比例和/或QPS分量到業(yè)務(wù)服務(wù)器的內(nèi)存中。
6、業(yè)務(wù)邏輯調(diào)用讀內(nèi)存API獲得當(dāng)前的業(yè)務(wù)量比例和/或QPS分量,并根據(jù)業(yè)務(wù)量比例和/或QPS分量進(jìn)行流量控制。
可以理解的是,當(dāng)計(jì)算進(jìn)程直接下發(fā)各個(gè)業(yè)務(wù)服務(wù)器的業(yè)務(wù)量比例時(shí),業(yè)務(wù)邏輯可以將QPS總量乘以業(yè)務(wù)量比例得到單機(jī)的QPS分量。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用硬件實(shí)施例、軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器和光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。