本發(fā)明涉及日志收集技術(shù),尤其涉及一種日志收集方法、客戶端、服務(wù)器、電子設(shè)備、存儲(chǔ)介質(zhì)。
背景技術(shù):
隨著計(jì)算機(jī)應(yīng)用技術(shù)的迅速發(fā)展,終端設(shè)備中的客戶端一般都具有日志功能,用于記錄客戶端運(yùn)行的日志數(shù)據(jù)。這樣,在后續(xù)流程中,通過(guò)查看客戶端記錄的日志數(shù)據(jù),可以獲取客戶端的運(yùn)行狀態(tài),便于管理人員和維護(hù)人員能夠更加方便地分析客戶端的運(yùn)行數(shù)據(jù),解決客戶端運(yùn)行中出現(xiàn)的各種技術(shù)故障,并在一定程度上預(yù)測(cè)客戶端未來(lái)可能發(fā)生的異常,從而規(guī)避未來(lái)出現(xiàn)的技術(shù)故障,保障客戶端的正常運(yùn)行。
目前,客戶端向服務(wù)器上報(bào)日志的方式大都分為兩種:一種是定時(shí)向服務(wù)器上報(bào)日志。另一種是當(dāng)日志積累到一定的數(shù)量級(jí)時(shí)再向服務(wù)器上報(bào)日志。
上述兩種日志上報(bào)方式非常不智能,在不考慮數(shù)據(jù)量及服務(wù)器壓力的時(shí)候可以滿足大多數(shù)服務(wù)的可用性,但是一旦服務(wù)器壓力達(dá)到極限值,這兩種上報(bào)方式很可能對(duì)服務(wù)器造成雪崩式崩潰,直接導(dǎo)致服務(wù)被打死,甚至所積攢的數(shù)據(jù)會(huì)把網(wǎng)卡打滿導(dǎo)致其他服務(wù)無(wú)法正常運(yùn)行。
技術(shù)實(shí)現(xiàn)要素:
為解決上述技術(shù)問(wèn)題,本發(fā)明實(shí)施例提供了一種日志收集方法、客戶端、服務(wù)器。
本發(fā)明實(shí)施例提供的日志收集方法,包括:
收集日志數(shù)據(jù);
向服務(wù)器發(fā)送日志數(shù)據(jù),接收所述服務(wù)器發(fā)送的所述服務(wù)器的壓力等級(jí)參數(shù);
根據(jù)所述服務(wù)器的壓力等級(jí)參數(shù)確定下一次向所述服務(wù)器發(fā)送日志數(shù)據(jù)的目標(biāo)時(shí)間;
在所述目標(biāo)時(shí)間達(dá)到時(shí),向所述服務(wù)器發(fā)送日志數(shù)據(jù)。
本發(fā)明實(shí)施例中,所述根據(jù)所述服務(wù)器的壓力等級(jí)參數(shù)確定下一次向所述服務(wù)器發(fā)送日志數(shù)據(jù)的目標(biāo)時(shí)間,包括:
接收所述服務(wù)器發(fā)送的接收狀態(tài)參數(shù);
當(dāng)所述接收狀態(tài)參數(shù)表征所述服務(wù)器為接收等待狀態(tài)時(shí),根據(jù)所述服務(wù)器的壓力等級(jí)參數(shù)確定下一次向所述服務(wù)器發(fā)送日志數(shù)據(jù)的目標(biāo)時(shí)間。
本發(fā)明實(shí)施例中,所述向服務(wù)器發(fā)送日志數(shù)據(jù),包括:
將所述日志數(shù)據(jù)以JSON格式發(fā)送給服務(wù)器;
相應(yīng)地,所述接收所述服務(wù)器發(fā)送的所述服務(wù)器的壓力等級(jí)參數(shù),包括:
接收所述服務(wù)器以JSON格式發(fā)送的所述服務(wù)器的壓力等級(jí)參數(shù)。
本發(fā)明實(shí)施例中,所述服務(wù)器的壓力等級(jí)參數(shù)能夠表征N種壓力等級(jí),N為正整數(shù),其中,每種壓力等級(jí)對(duì)應(yīng)不同的目標(biāo)時(shí)間。
本發(fā)明實(shí)施例中,所述根據(jù)所述服務(wù)器的壓力等級(jí)參數(shù)確定下一次向所述服務(wù)器發(fā)送日志數(shù)據(jù)的目標(biāo)時(shí)間,包括:
確定與所述服務(wù)器的壓力等級(jí)參數(shù)相對(duì)應(yīng)的延遲基數(shù)值;
根據(jù)所述延遲基數(shù)值以及隨機(jī)數(shù)值,計(jì)算得到所述目標(biāo)時(shí)間,其中,所述服務(wù)器的壓力等級(jí)參數(shù)越大時(shí),與所述服務(wù)器的壓力等級(jí)參數(shù)相對(duì)應(yīng)的延遲基數(shù)值越大。
本發(fā)明實(shí)施例中,所述隨機(jī)數(shù)值的確定方式能夠動(dòng)態(tài)改變。
本發(fā)明實(shí)施例中,所述方法還包括:
當(dāng)所述壓力等級(jí)參數(shù)超過(guò)門限值時(shí),丟棄下一次向所述服務(wù)器發(fā)送的日志數(shù)據(jù),或者將下一次向所述服務(wù)器發(fā)送的日志數(shù)據(jù)進(jìn)行簡(jiǎn)化并在距離當(dāng)前時(shí)刻超過(guò)預(yù)設(shè)時(shí)長(zhǎng)的時(shí)刻發(fā)送給所述服務(wù)器。
本發(fā)明另一實(shí)施例提供的日志收集方法,包括:
接收客戶端發(fā)送的日志數(shù)據(jù);
向所述客戶端發(fā)送服務(wù)器的壓力等級(jí)參數(shù),以使所述客戶端根據(jù)所述服務(wù)器的壓力等級(jí)參數(shù)確定下一次向所述服務(wù)器發(fā)送日志數(shù)據(jù)的目標(biāo)時(shí)間;
在所述目標(biāo)時(shí)間達(dá)到時(shí),接收所述客戶端發(fā)送的日志數(shù)據(jù)。
本發(fā)明實(shí)施例中,所述方法還包括:
向所述客戶端發(fā)送服務(wù)器的接收狀態(tài)參數(shù),以使所述客戶端在接收狀態(tài)參數(shù)表征所述服務(wù)器為等待狀態(tài)時(shí),根據(jù)所述服務(wù)器的壓力等級(jí)參數(shù)確定下一次向所述服務(wù)器發(fā)送日志數(shù)據(jù)的目標(biāo)時(shí)間。
本發(fā)明實(shí)施例中,所述接收客戶端發(fā)送的日志數(shù)據(jù),包括:
接收客戶端以JSON格式發(fā)送的日志數(shù)據(jù);
相應(yīng)地,所述向所述客戶端發(fā)送服務(wù)器的壓力等級(jí)參數(shù),包括:
向所述客戶端以JSON格式發(fā)送服務(wù)器的壓力等級(jí)參數(shù)。
本發(fā)明實(shí)施例中,所述方法還包括:
當(dāng)成功接收日志數(shù)據(jù)后,通過(guò)分布式發(fā)布訂閱系統(tǒng)(kafka)消息隊(duì)列對(duì)所述日志數(shù)據(jù)進(jìn)行處理。
本發(fā)明實(shí)施例提供的客戶端,包括:
收集單元,用于收集日志數(shù)據(jù);
通信單元,用于向服務(wù)器發(fā)送日志數(shù)據(jù),接收所述服務(wù)器發(fā)送的所述服務(wù)器的壓力等級(jí)參數(shù);
確定單元,用于根據(jù)所述服務(wù)器的壓力等級(jí)參數(shù)確定下一次向所述服務(wù)器發(fā)送日志數(shù)據(jù)的目標(biāo)時(shí)間;
所述通信單元,還用于在所述目標(biāo)時(shí)間達(dá)到時(shí),向所述服務(wù)器發(fā)送日志數(shù)據(jù)。
本發(fā)明實(shí)施例提供的電子設(shè)備,包括存儲(chǔ)器、處理器及存儲(chǔ)在存儲(chǔ)器上并可在處理器上運(yùn)行的計(jì)算機(jī)程序,所述處理器執(zhí)行所述程序時(shí)實(shí)現(xiàn)以下步驟:
收集日志數(shù)據(jù);
向服務(wù)器發(fā)送日志數(shù)據(jù),接收所述服務(wù)器發(fā)送的所述服務(wù)器的壓力等級(jí)參數(shù);
根據(jù)所述服務(wù)器的壓力等級(jí)參數(shù)確定下一次向所述服務(wù)器發(fā)送日志數(shù)據(jù)的目標(biāo)時(shí)間;
在所述目標(biāo)時(shí)間達(dá)到時(shí),向所述服務(wù)器發(fā)送日志數(shù)據(jù)。
本發(fā)明實(shí)施例提供的服務(wù)器,包括:
通信單元,用于接收客戶端發(fā)送的日志數(shù)據(jù);
確定單元,用于確定服務(wù)器的壓力等級(jí)參數(shù);
所述通信單元,還用于向所述客戶端發(fā)送所述服務(wù)器的壓力等級(jí)參數(shù),以使所述客戶端根據(jù)所述服務(wù)器的壓力等級(jí)參數(shù)確定下一次向所述服務(wù)器發(fā)送日志數(shù)據(jù)的目標(biāo)時(shí)間;在所述目標(biāo)時(shí)間達(dá)到時(shí),接收所述客戶端發(fā)送的日志數(shù)據(jù)。
本發(fā)明另一實(shí)施例提供的電子設(shè)備,包括存儲(chǔ)器、處理器及存儲(chǔ)在存儲(chǔ)器上并可在處理器上運(yùn)行的計(jì)算機(jī)程序,所述處理器執(zhí)行所述程序時(shí)實(shí)現(xiàn)以下步驟:
接收客戶端發(fā)送的日志數(shù)據(jù);
向所述客戶端發(fā)送服務(wù)器的壓力等級(jí)參數(shù),以使所述客戶端根據(jù)所述服務(wù)器的壓力等級(jí)參數(shù)確定下一次向所述服務(wù)器發(fā)送日志數(shù)據(jù)的目標(biāo)時(shí)間;
在所述目標(biāo)時(shí)間達(dá)到時(shí),接收所述客戶端發(fā)送的日志數(shù)據(jù)。
本發(fā)明實(shí)施例提供的存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,該程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)以上所述方法的步驟。
本發(fā)明實(shí)施例的技術(shù)方案中,客戶端收集日志數(shù)據(jù);向服務(wù)器發(fā)送日志數(shù)據(jù),接收所述服務(wù)器發(fā)送的所述服務(wù)器的壓力等級(jí)參數(shù);根據(jù)所述服務(wù)器的壓力等級(jí)參數(shù)確定下一次向所述服務(wù)器發(fā)送日志數(shù)據(jù)的目標(biāo)時(shí)間;在所述目標(biāo)時(shí)間達(dá)到時(shí),向所述服務(wù)器發(fā)送日志數(shù)據(jù)。采用本發(fā)明實(shí)施例的技術(shù)方案,客戶端將海量的分布式日志數(shù)據(jù)上報(bào)給服務(wù)器時(shí),根據(jù)服務(wù)器的壓力等級(jí)動(dòng)態(tài)調(diào)整上報(bào)的時(shí)間,從而有效緩解了服務(wù)器的壓力,尤其是在服務(wù)器處理能力有限時(shí),能夠避免大量的日志數(shù)據(jù)上報(bào)而導(dǎo)致服務(wù)不可用的情況。
此外,服務(wù)器通過(guò)kafka消息隊(duì)列對(duì)日志數(shù)據(jù)進(jìn)行處理,分擔(dān)了服務(wù)器的壓力,減少服務(wù)的耦合度,提高了服務(wù)質(zhì)量與數(shù)據(jù)質(zhì)量。
附圖說(shuō)明
圖1為本發(fā)明實(shí)施例中進(jìn)行信息交互的各方硬件實(shí)體的示意圖;
圖2為本發(fā)明實(shí)施例的日志收集方法的流程示意圖;
圖3為本發(fā)明實(shí)施例的日志收集方法的流程示意圖;
圖4為本發(fā)明實(shí)施例的客戶端的結(jié)構(gòu)組成示意圖;
圖5為本發(fā)明實(shí)施例的服務(wù)器的結(jié)構(gòu)組成示意圖;
圖6為本發(fā)明實(shí)施例的電子設(shè)備的各硬件模塊的示意圖。
具體實(shí)施方式
為了能夠更加詳盡地了解本發(fā)明實(shí)施例的特點(diǎn)與技術(shù)內(nèi)容,下面結(jié)合附圖對(duì)本發(fā)明實(shí)施例的實(shí)現(xiàn)進(jìn)行詳細(xì)闡述,所附附圖僅供參考說(shuō)明之用,并非用來(lái)限定本發(fā)明實(shí)施例。
圖1為本發(fā)明實(shí)施例中進(jìn)行信息交互的各方硬件實(shí)體的示意圖,圖1中包括:服務(wù)器11、終端設(shè)備21-2n,終端設(shè)備21-2n通過(guò)無(wú)線網(wǎng)絡(luò)與服務(wù)器進(jìn)行信息交互,終端設(shè)備為手機(jī)。一個(gè)示例中,終端設(shè)備21-2n安裝有客戶端,也稱為應(yīng)用(APP),客戶端通過(guò)終端設(shè)備將與應(yīng)用相關(guān)的日志數(shù)據(jù)上報(bào)給服務(wù)器,從而維護(hù)人員可以對(duì)日志數(shù)據(jù)進(jìn)行分析。本發(fā)明實(shí)施例中,客戶端向服務(wù)器上報(bào)日志數(shù)據(jù)時(shí),根據(jù)服務(wù)器的壓力等級(jí)來(lái)動(dòng)態(tài)上報(bào)日志數(shù)據(jù),從而可以平衡服務(wù)器的壓力,并且,服務(wù)器成功接收到日志數(shù)據(jù)時(shí),通過(guò)kafka消息隊(duì)列對(duì)日志數(shù)據(jù)進(jìn)行處理,將消息的生產(chǎn)與消費(fèi)分為上游與下游,有效的分擔(dān)了服務(wù)器的壓力。
上述圖1的例子只是實(shí)現(xiàn)本發(fā)明實(shí)施例的一個(gè)系統(tǒng)架構(gòu)實(shí)例,本發(fā)明實(shí)施例并不限于上述圖1所述的系統(tǒng)結(jié)構(gòu),基于該系統(tǒng)架構(gòu),提出本發(fā)明各個(gè)實(shí)施例。
圖2為本發(fā)明實(shí)施例的日志收集方法的流程示意圖,本示例中的日志收集方法應(yīng)用于客戶端側(cè),如圖2所示,所述日志收集方法包括以下步驟:
步驟201:收集日志數(shù)據(jù)。
本發(fā)明實(shí)施例中,客戶端,也即應(yīng)用(APP)中均安裝有推送包(pushSDK),通過(guò)pushSDK能夠?qū)⒖蛻舳耸占降娜罩緮?shù)據(jù)上報(bào)給服務(wù)器。
當(dāng)在終端設(shè)備中安裝客戶端時(shí),客戶端便開始收集日志數(shù)據(jù)。收集的日志數(shù)據(jù)主要包括:終端設(shè)備的標(biāo)識(shí)(device_id),終端設(shè)備的令牌(device_token),軟件開發(fā)工具包(SDK,Software Development Kit)版本號(hào)等、網(wǎng)絡(luò)變化情況、客戶端運(yùn)行邏輯等。
步驟202:向服務(wù)器發(fā)送日志數(shù)據(jù),接收所述服務(wù)器發(fā)送的所述服務(wù)器的壓力等級(jí)參數(shù)。
首先,客戶端嘗試與服務(wù)器建立連接,當(dāng)建立好連接通道時(shí),客戶端會(huì)將日志數(shù)據(jù)傳送給服務(wù)器,服務(wù)器端會(huì)返回給客戶端所述服務(wù)器的壓力等級(jí)參數(shù)。
在一實(shí)施方式中,客戶端將所述日志數(shù)據(jù)以JSON格式發(fā)送給服務(wù)器;客戶端接收所述服務(wù)器以JSON格式發(fā)送的所述服務(wù)器的壓力等級(jí)參數(shù)。具體實(shí)現(xiàn)時(shí),客戶端可以每次都將一定數(shù)目,如100條日志數(shù)據(jù)以JSON格式發(fā)送給服務(wù)器。
這里,壓力等級(jí)參數(shù)是客戶端進(jìn)行下一次上報(bào)日志數(shù)據(jù)的判斷條件。
步驟203:根據(jù)所述服務(wù)器的壓力等級(jí)參數(shù)確定下一次向所述服務(wù)器發(fā)送日志數(shù)據(jù)的目標(biāo)時(shí)間。
在一實(shí)施方式中,客戶端還接收所述服務(wù)器發(fā)送的接收狀態(tài)參數(shù),所述接收狀態(tài)參數(shù)包括三種:接收成功(success),接收失敗參數(shù)(fail),接收等待(wait)。在一實(shí)施方式中,當(dāng)所述接收狀態(tài)參數(shù)表征所述服務(wù)器為接收等待狀態(tài)時(shí),根據(jù)所述服務(wù)器的壓力等級(jí)參數(shù)確定下一次向所述服務(wù)器發(fā)送日志數(shù)據(jù)的目標(biāo)時(shí)間。
本發(fā)明實(shí)施例中,當(dāng)所述接收狀態(tài)參數(shù)表征所述服務(wù)器接收日志數(shù)據(jù)成功時(shí),則客戶端直接(也即在當(dāng)前時(shí)刻)再次向服務(wù)器上傳日志數(shù)據(jù)。
本發(fā)明實(shí)施例中,當(dāng)所述接收狀態(tài)參數(shù)表征所述服務(wù)器接收日志數(shù)據(jù)失敗時(shí),對(duì)接收失敗的所述日志數(shù)據(jù)進(jìn)行格式檢測(cè);當(dāng)所述日志數(shù)據(jù)的格式因?yàn)榉庋b發(fā)生錯(cuò)誤而導(dǎo)致不是正確的JSON格式時(shí),重新將正確的JSON格式的所述日志數(shù)據(jù)發(fā)送給所述服務(wù)器。
本發(fā)明實(shí)施例中,當(dāng)所述接收狀態(tài)參數(shù)表征所述服務(wù)器接收日志數(shù)據(jù)處于等待狀態(tài)時(shí),延遲向服務(wù)器發(fā)送日志數(shù)據(jù)。
此外,接收狀態(tài)參數(shù)為接收成功(success)或者是接收失敗(fail)時(shí),客戶端還可以根據(jù)服務(wù)器的壓力等級(jí)參數(shù)來(lái)判定服務(wù)器的性能狀態(tài),從而能夠讓客戶端更好的控制后續(xù)上報(bào)日志的上報(bào)時(shí)間。
本發(fā)明實(shí)施例中,服務(wù)器在整個(gè)過(guò)程中都通過(guò)simple-metrics對(duì)整個(gè)服務(wù)器的壓力級(jí)別進(jìn)行實(shí)時(shí)監(jiān)控。此外,還可以直接通過(guò)檢測(cè)服務(wù)器的各個(gè)硬件資源負(fù)載來(lái)對(duì)服務(wù)器的壓力級(jí)別進(jìn)行判定。所述服務(wù)器的壓力等級(jí)參數(shù)能夠表征N種壓力等級(jí),N為正整數(shù),其中,每種壓力等級(jí)對(duì)應(yīng)不同的目標(biāo)時(shí)間。以N=3為例,在一實(shí)施方式中,服務(wù)器的壓力等級(jí)參數(shù)包括:第一壓力等級(jí)、第二壓力等級(jí)、第三壓力等級(jí)。當(dāng)然,也可以將服務(wù)器的壓力等級(jí)參數(shù)根據(jù)實(shí)際應(yīng)用場(chǎng)景進(jìn)行其他形式的劃分。
第一壓力等級(jí)、第二壓力等級(jí)、第三壓力等級(jí)所代表的服務(wù)器的各個(gè)壓力情況依次增大。
本發(fā)明實(shí)施例中,服務(wù)器返回的接收狀態(tài)參數(shù)與服務(wù)器的壓力等級(jí)參數(shù)表征兩個(gè)不同的概念,其中,服務(wù)器返回的接收狀態(tài)參數(shù)是指:服務(wù)器接收到客戶端發(fā)送的日志數(shù)據(jù)后,確定出接收到日志數(shù)據(jù)是否成功,如果接收成功,則返回接收成功(success),如果接收失敗,則返回接收失敗(fail),如果暫時(shí)無(wú)法接收日志數(shù)據(jù),則返回接收等待(wait)。服務(wù)器的壓力等級(jí)參數(shù)表征了服務(wù)器當(dāng)前的處理能力。如果客戶端接收到的接收狀態(tài)參數(shù)是接收等待(wait),則表明服務(wù)器暫時(shí)無(wú)法接收日志數(shù)據(jù),需要客戶端進(jìn)一步根據(jù)服務(wù)器返回的壓力等級(jí)參數(shù)來(lái)確定下一次向服務(wù)器重新上報(bào)日志數(shù)據(jù)的時(shí)間。
當(dāng)所述接收狀態(tài)參數(shù)表征所述服務(wù)器為接收等待狀態(tài)時(shí),根據(jù)所述服務(wù)器的壓力等級(jí)參數(shù)確定下一次向所述服務(wù)器發(fā)送日志數(shù)據(jù)的目標(biāo)時(shí)間,具體地,
確定與所述服務(wù)器的壓力等級(jí)參數(shù)相對(duì)應(yīng)的延遲基數(shù)值;
根據(jù)所述延遲基數(shù)值以及隨機(jī)數(shù)值,計(jì)算得到所述目標(biāo)時(shí)間,其中,所述服務(wù)器的壓力等級(jí)參數(shù)越大時(shí),與所述服務(wù)器的壓力等級(jí)參數(shù)相對(duì)應(yīng)的延遲基數(shù)值越大。例如:
1)當(dāng)所述壓力等級(jí)參數(shù)表征所述服務(wù)器處于第一壓力等級(jí)時(shí),根據(jù)所述第一壓力等級(jí)所確定的延遲基數(shù)值以及一個(gè)隨機(jī)數(shù)值,計(jì)算得到下一次向所述服務(wù)器發(fā)送日志數(shù)據(jù)的目標(biāo)時(shí)間。
例如,客戶端以當(dāng)前時(shí)刻為起點(diǎn)延遲20分鐘加一個(gè)范圍內(nèi)的隨機(jī)時(shí)長(zhǎng)后,再次上傳日志數(shù)據(jù)。
2)當(dāng)所述壓力等級(jí)參數(shù)表征所述服務(wù)器處于第二壓力等級(jí)時(shí),根據(jù)所述第二壓力等級(jí)所確定的延遲基數(shù)值以及一個(gè)隨機(jī)數(shù)值,計(jì)算得到下一次向所述服務(wù)器發(fā)送日志數(shù)據(jù)的目標(biāo)時(shí)間。
例如,客戶端以當(dāng)前時(shí)刻為起點(diǎn)延遲一個(gè)小時(shí)加一個(gè)范圍內(nèi)的隨機(jī)時(shí)長(zhǎng)后,再次上傳日志數(shù)據(jù)。
3)當(dāng)所述壓力等級(jí)參數(shù)表征所述服務(wù)器處于第三壓力等級(jí)時(shí),根據(jù)所述第三壓力等級(jí)所確定的延遲基數(shù)值以及一個(gè)隨機(jī)數(shù)值,計(jì)算得到下一次向所述服務(wù)器發(fā)送日志數(shù)據(jù)的目標(biāo)時(shí)間。
例如,客戶端以當(dāng)前時(shí)刻為起點(diǎn)延遲四個(gè)小時(shí)加一個(gè)范圍內(nèi)的隨機(jī)時(shí)長(zhǎng)后,再次上傳日志數(shù)據(jù)。
上述方案中,壓力等級(jí)越大,則表明服務(wù)器的處理能力越差,對(duì)應(yīng)地,該壓力等級(jí)的延遲基數(shù)值則越大,這樣,可以使客戶端延長(zhǎng)更長(zhǎng)的時(shí)間進(jìn)行下一次日志的上報(bào),從而緩解了服務(wù)器的壓力。
上述方案中,所述隨機(jī)數(shù)值的確定方式能夠動(dòng)態(tài)改變。例如:隨機(jī)時(shí)長(zhǎng)根據(jù)服務(wù)器的壓力高峰時(shí)間段正太分布,避免高峰時(shí)間里客戶端頻繁與服務(wù)器交互。這里,當(dāng)隨機(jī)時(shí)長(zhǎng)根據(jù)服務(wù)器的壓力高峰時(shí)間段正太分布時(shí),壓力高峰時(shí)間所對(duì)應(yīng)的隨機(jī)時(shí)長(zhǎng)最長(zhǎng),而壓力高峰時(shí)間所對(duì)應(yīng)的服務(wù)器的壓力是最大的,因此,需要通過(guò)最長(zhǎng)的隨機(jī)時(shí)長(zhǎng)來(lái)計(jì)算目標(biāo)時(shí)間,避免高峰時(shí)間里客戶端頻繁與服務(wù)器交互。
此外,作為優(yōu)選,當(dāng)所述壓力等級(jí)參數(shù)超過(guò)門限值時(shí),丟棄下一次向所述服務(wù)器發(fā)送的日志數(shù)據(jù),或者將下一次向所述服務(wù)器發(fā)送的日志數(shù)據(jù)進(jìn)行簡(jiǎn)化并在距離當(dāng)前時(shí)刻超過(guò)預(yù)設(shè)時(shí)長(zhǎng)的時(shí)刻發(fā)送給所述服務(wù)器。
這里,日志數(shù)據(jù)進(jìn)行簡(jiǎn)化是指:根據(jù)預(yù)設(shè)的策略刪除日志數(shù)據(jù)中不重要的信息內(nèi)容,從而將日志數(shù)據(jù)中較為重要的內(nèi)容上報(bào)給服務(wù)器,以減輕服務(wù)器的壓力。其中,預(yù)設(shè)的策略可以根據(jù)業(yè)務(wù)靈活設(shè)置,例如:當(dāng)業(yè)務(wù)為計(jì)費(fèi)業(yè)務(wù)時(shí),則將與資金無(wú)關(guān)的冗余內(nèi)容刪除掉,保留與資金有關(guān)的信息內(nèi)容。具體實(shí)現(xiàn)時(shí),可以預(yù)先設(shè)置關(guān)鍵詞,然后對(duì)日志數(shù)據(jù)進(jìn)行逐一排查過(guò)濾,將出現(xiàn)關(guān)鍵詞的語(yǔ)句保留,其余的語(yǔ)句刪除,從而實(shí)現(xiàn)對(duì)日志數(shù)據(jù)的簡(jiǎn)化。
這里,距離當(dāng)前時(shí)刻超過(guò)預(yù)設(shè)時(shí)長(zhǎng)可以是第二天的某個(gè)時(shí)刻,這樣可以緩解服務(wù)器當(dāng)前的壓力。其中,對(duì)于第二壓力等級(jí)或者第三壓力等級(jí)的延遲基數(shù)值而言,預(yù)設(shè)時(shí)長(zhǎng)需要均大于他們的延遲基數(shù)值,這樣,超過(guò)門限值的壓力等級(jí)參數(shù)所對(duì)應(yīng)的目標(biāo)時(shí)間才能夠晚于第二壓力等級(jí)或者第三壓力等級(jí)對(duì)應(yīng)的目標(biāo)時(shí)間。
步驟204:在所述目標(biāo)時(shí)間達(dá)到時(shí),向所述服務(wù)器發(fā)送日志數(shù)據(jù)。
服務(wù)器成功接收到日志數(shù)據(jù)后,通過(guò)kafka消息隊(duì)列對(duì)所述日志數(shù)據(jù)進(jìn)行處理。
本發(fā)明實(shí)施例中,客戶端根據(jù)服務(wù)器的壓力動(dòng)態(tài)上報(bào)日志數(shù)據(jù),從而可以有效緩解服務(wù)器的壓力;在服務(wù)器處理能力有限的前提下,避免了大量數(shù)據(jù)導(dǎo)致服務(wù)不可用的情況,平衡了服務(wù)器的資源。并且通過(guò)kafka消息隊(duì)列增加服務(wù)器的處理能力,在大量的服務(wù)器請(qǐng)求壓力下,分擔(dān)了服務(wù)器的壓力,減少了服務(wù)器的耦合度,提高了服務(wù)質(zhì)量和數(shù)據(jù)質(zhì)量。
圖3為本發(fā)明實(shí)施例的日志收集方法的流程示意圖,本示例中的日志收集方法應(yīng)用于服務(wù)器側(cè),如圖3所示,所述日志收集方法包括以下步驟:
步驟301:接收客戶端發(fā)送的日志數(shù)據(jù)。
本發(fā)明實(shí)施例中,客戶端,也即應(yīng)用(APP)中均安裝有推送包(pushSDK),通過(guò)pushSDK能夠?qū)⒖蛻舳耸占降娜罩緮?shù)據(jù)上報(bào)給服務(wù)器。
當(dāng)在終端設(shè)備中安裝客戶端時(shí),客戶端便開始收集日志數(shù)據(jù)。收集的日志數(shù)據(jù)主要包括:終端設(shè)備的標(biāo)識(shí)(device_id),終端設(shè)備的令牌(device_token),軟件開發(fā)工具包(SDK,Software Development Kit)版本號(hào)等、網(wǎng)絡(luò)變化情況、客戶端運(yùn)行邏輯等。
首先,客戶端嘗試與服務(wù)器建立連接,當(dāng)建立好連接通道時(shí),客戶端會(huì)將日志數(shù)據(jù)傳送給服務(wù)器。在一實(shí)施方式中,服務(wù)器接收客戶端以JSON格式發(fā)送的日志數(shù)據(jù)。具體實(shí)現(xiàn)時(shí),客戶端可以每次都將一定數(shù)目,如200條日志數(shù)據(jù)以JSON格式發(fā)送給服務(wù)器。
步驟302:向所述客戶端發(fā)送服務(wù)器的壓力等級(jí)參數(shù),以使所述客戶端根據(jù)所述服務(wù)器的壓力等級(jí)參數(shù)確定下一次向所述服務(wù)器發(fā)送日志數(shù)據(jù)的目標(biāo)時(shí)間。
本發(fā)明實(shí)施例中,服務(wù)器向所述客戶端以JSON格式發(fā)送服務(wù)器的壓力等級(jí)參數(shù)。
這里,壓力等級(jí)參數(shù)是客戶端進(jìn)行下一次上報(bào)日志數(shù)據(jù)的判斷條件。
在一實(shí)施方式中,服務(wù)器還向所述客戶端發(fā)送服務(wù)器的接收狀態(tài)參數(shù),所述接收狀態(tài)參數(shù)包括三種:接收成功(success),接收失敗參數(shù)(fail),接收等待(wait)。
本發(fā)明實(shí)施例中,當(dāng)所述接收狀態(tài)參數(shù)表征所述服務(wù)器接收日志數(shù)據(jù)成功時(shí),則客戶端直接(也即在當(dāng)前時(shí)刻)再次向服務(wù)器上傳日志數(shù)據(jù)。
本發(fā)明實(shí)施例中,當(dāng)所述接收狀態(tài)參數(shù)表征所述服務(wù)器接收日志數(shù)據(jù)失敗時(shí),對(duì)接收失敗的所述日志數(shù)據(jù)進(jìn)行格式檢測(cè);當(dāng)所述日志數(shù)據(jù)的格式不是JSON格式時(shí),重新將JSON格式的所述日志數(shù)據(jù)發(fā)送給所述服務(wù)器。
本發(fā)明實(shí)施例中,當(dāng)所述接收狀態(tài)參數(shù)表征所述服務(wù)器接收日志數(shù)據(jù)處于等待狀態(tài)時(shí),延遲向服務(wù)器發(fā)送日志數(shù)據(jù)。
本發(fā)明實(shí)施例中,服務(wù)器在整個(gè)過(guò)程中都通過(guò)simple-metrics對(duì)整個(gè)服務(wù)器的壓力級(jí)別進(jìn)行實(shí)時(shí)監(jiān)控。此外,還可以直接通過(guò)檢測(cè)服務(wù)器的各個(gè)硬件資源負(fù)載來(lái)對(duì)服務(wù)器的壓力級(jí)別進(jìn)行判定。所述服務(wù)器的壓力等級(jí)參數(shù)能夠表征N種壓力等級(jí),N為正整數(shù),其中,每種壓力等級(jí)對(duì)應(yīng)不同的目標(biāo)時(shí)間。以N=3為例,在一實(shí)施方式中,服務(wù)器的壓力等級(jí)參數(shù)包括:第一壓力等級(jí)、第二壓力等級(jí)、第三壓力等級(jí)。當(dāng)然,也可以將服務(wù)器的壓力等級(jí)參數(shù)根據(jù)實(shí)際應(yīng)用場(chǎng)景進(jìn)行其他形式的劃分。
第一壓力等級(jí)、第二壓力等級(jí)、第三壓力等級(jí)所代表的服務(wù)器的各個(gè)壓力情況依次增大。
本發(fā)明實(shí)施例中,服務(wù)器返回的接收狀態(tài)參數(shù)與服務(wù)器的壓力等級(jí)參數(shù)表征兩個(gè)不同的概念,其中,服務(wù)器返回的接收狀態(tài)參數(shù)是指:服務(wù)器接收到客戶端發(fā)送的日志數(shù)據(jù)后,確定出接收到日志數(shù)據(jù)是否成功,如果接收成功,則返回接收成功(success),如果接收失敗,則返回接收失敗(fail),如果暫時(shí)無(wú)法接收日志數(shù)據(jù),則返回接收等待(wait)。服務(wù)器的壓力等級(jí)參數(shù)表征了服務(wù)器當(dāng)前的處理能力。如果客戶端接收到的接收狀態(tài)參數(shù)是接收等待(wait),則表明服務(wù)器暫時(shí)無(wú)法接收日志數(shù)據(jù),需要客戶端進(jìn)一步根據(jù)服務(wù)器返回的壓力等級(jí)參數(shù)來(lái)確定下一次向服務(wù)器重新上報(bào)日志數(shù)據(jù)的時(shí)間。
在一實(shí)施方式中,當(dāng)所述接收狀態(tài)參數(shù)表征所述服務(wù)器為接收等待狀態(tài)時(shí),根據(jù)所述服務(wù)器的壓力等級(jí)參數(shù)確定下一次向所述服務(wù)器發(fā)送日志數(shù)據(jù)的目標(biāo)時(shí)間,例如:
1)當(dāng)所述壓力等級(jí)參數(shù)表征所述服務(wù)器處于第一壓力等級(jí)時(shí),根據(jù)所述第一壓力等級(jí)所確定的延遲基數(shù)值以及一個(gè)隨機(jī)數(shù)值,計(jì)算得到下一次向所述服務(wù)器發(fā)送日志數(shù)據(jù)的目標(biāo)時(shí)間。
例如,客戶端以當(dāng)前時(shí)刻為起點(diǎn)延遲20分鐘加一個(gè)范圍內(nèi)的隨機(jī)時(shí)長(zhǎng)后,再次上傳日志數(shù)據(jù)。
2)當(dāng)所述壓力等級(jí)參數(shù)表征所述服務(wù)器處于第二壓力等級(jí)時(shí),根據(jù)所述第二壓力等級(jí)所確定的延遲基數(shù)值以及一個(gè)隨機(jī)數(shù)值,計(jì)算得到下一次向所述服務(wù)器發(fā)送日志數(shù)據(jù)的目標(biāo)時(shí)間。
例如,客戶端以當(dāng)前時(shí)刻為起點(diǎn)延遲一個(gè)小時(shí)加一個(gè)范圍內(nèi)的隨機(jī)時(shí)長(zhǎng)后,再次上傳日志數(shù)據(jù)。
3)當(dāng)所述壓力等級(jí)參數(shù)表征所述服務(wù)器處于第三壓力等級(jí)時(shí),根據(jù)所述第三壓力等級(jí)所確定的延遲基數(shù)值以及一個(gè)隨機(jī)數(shù)值,計(jì)算得到下一次向所述服務(wù)器發(fā)送日志數(shù)據(jù)的目標(biāo)時(shí)間。
例如,客戶端以當(dāng)前時(shí)刻為起點(diǎn)延遲四個(gè)小時(shí)加一個(gè)范圍內(nèi)的隨機(jī)時(shí)長(zhǎng)后,再次上傳日志數(shù)據(jù)。
上述方案中,壓力等級(jí)越大,則表明服務(wù)器的處理能力越差,對(duì)應(yīng)地,該壓力等級(jí)的延遲基數(shù)值則越大,這樣,可以使客戶端延長(zhǎng)更長(zhǎng)的時(shí)間進(jìn)行下一次日志的上報(bào),從而緩解了服務(wù)器的壓力。
上述方案中,所述隨機(jī)數(shù)值的確定方式能夠動(dòng)態(tài)改變。例如:隨機(jī)時(shí)長(zhǎng)根據(jù)服務(wù)器的壓力高峰時(shí)間段正太分布,避免高峰時(shí)間里客戶端頻繁與服務(wù)器交互。這里,當(dāng)隨機(jī)時(shí)長(zhǎng)根據(jù)服務(wù)器的壓力高峰時(shí)間段正太分布時(shí),壓力高峰時(shí)間所對(duì)應(yīng)的隨機(jī)時(shí)長(zhǎng)最長(zhǎng),而壓力高峰時(shí)間所對(duì)應(yīng)的服務(wù)器的壓力是最大的,因此,需要通過(guò)最長(zhǎng)的隨機(jī)時(shí)長(zhǎng)來(lái)計(jì)算目標(biāo)時(shí)間,避免高峰時(shí)間里客戶端頻繁與服務(wù)器交互。
此外,當(dāng)所述壓力等級(jí)參數(shù)超過(guò)門限值時(shí),丟棄下一次向所述服務(wù)器發(fā)送的日志數(shù)據(jù),或者將下一次向所述服務(wù)器發(fā)送的日志數(shù)據(jù)進(jìn)行簡(jiǎn)化并在距離當(dāng)前時(shí)刻超過(guò)預(yù)設(shè)時(shí)長(zhǎng)的時(shí)刻發(fā)送給所述服務(wù)器。
這里,日志數(shù)據(jù)進(jìn)行簡(jiǎn)化是指:根據(jù)預(yù)設(shè)的策略刪除日志數(shù)據(jù)中不重要的信息內(nèi)容,從而將日志數(shù)據(jù)中較為重要的內(nèi)容上報(bào)給服務(wù)器,以減輕服務(wù)器的壓力。其中,預(yù)設(shè)的策略可以根據(jù)業(yè)務(wù)靈活設(shè)置,例如:當(dāng)業(yè)務(wù)為計(jì)費(fèi)業(yè)務(wù)時(shí),則將與資金無(wú)關(guān)的冗余內(nèi)容刪除掉,保留與資金有關(guān)的信息內(nèi)容。具體實(shí)現(xiàn)時(shí),可以預(yù)先設(shè)置關(guān)鍵詞,然后對(duì)日志數(shù)據(jù)進(jìn)行逐一排查過(guò)濾,將出現(xiàn)關(guān)鍵詞的語(yǔ)句保留,其余的語(yǔ)句刪除,從而實(shí)現(xiàn)對(duì)日志數(shù)據(jù)的簡(jiǎn)化。
這里,距離當(dāng)前時(shí)刻超過(guò)預(yù)設(shè)時(shí)長(zhǎng)可以是第二天的某個(gè)時(shí)刻,這樣可以緩解服務(wù)器當(dāng)前的壓力。其中,對(duì)于第二壓力等級(jí)或者第三壓力等級(jí)的延遲基數(shù)值而言,預(yù)設(shè)時(shí)長(zhǎng)需要均大于他們的延遲基數(shù)值,這樣,超過(guò)門限值的壓力等級(jí)參數(shù)所對(duì)應(yīng)的目標(biāo)時(shí)間才能夠晚于第二壓力等級(jí)或者第三壓力等級(jí)對(duì)應(yīng)的目標(biāo)時(shí)間。
步驟303:在所述目標(biāo)時(shí)間達(dá)到時(shí),接收所述客戶端發(fā)送的日志數(shù)據(jù)。
服務(wù)器成功接收到日志數(shù)據(jù)后,通過(guò)kafka消息隊(duì)列對(duì)所述日志數(shù)據(jù)進(jìn)行處理。
具體地,當(dāng)服務(wù)器成功接收日志數(shù)據(jù)后,將日志數(shù)據(jù)以生產(chǎn)者的方式存入kafka消息隊(duì)列,kafka是一種高吞吐量的分布式發(fā)布訂閱系統(tǒng),kafka的目的是通過(guò)Hadoop的并行加載機(jī)制來(lái)統(tǒng)一線上和離線的消息處理,也是為了通過(guò)集群機(jī)來(lái)提供實(shí)時(shí)的消費(fèi)。服務(wù)器下游通過(guò)消費(fèi)kafka消息,將消息以固定格式通過(guò)開源日志系統(tǒng)(flume)存入數(shù)據(jù)倉(cāng)庫(kù)(hive)。
本發(fā)明實(shí)施例中,服務(wù)器采用kafka消息隊(duì)列的方式,將消息的生產(chǎn)與消費(fèi)分為上游與下游,有效的平衡了服務(wù)器的壓力,方便在消費(fèi)水平擴(kuò)展,避免了單點(diǎn)故障等問(wèn)題,使得系統(tǒng)容易監(jiān)控和維護(hù)。
本發(fā)明實(shí)施例中,服務(wù)器通過(guò)動(dòng)態(tài)收集日志數(shù)據(jù)的方式可以有效的平衡服務(wù)器的壓力,避免通過(guò)某些客戶端的漏洞(bug)或某種特殊情況引起數(shù)據(jù)量突增而導(dǎo)致服務(wù)不可用的情況。具體通過(guò)服務(wù)器不同的壓力級(jí)別對(duì)客戶端的上報(bào)的日志數(shù)據(jù)進(jìn)行限制,平衡服務(wù)器的壓力,在服務(wù)器資源一定的前提下能夠保障海量數(shù)據(jù)請(qǐng)求服務(wù)的可用性。
圖4為本發(fā)明實(shí)施例的客戶端的結(jié)構(gòu)組成示意圖,如圖4所示,所述客戶端包括:
收集單元41,用于收集日志數(shù)據(jù);
通信單元42,用于向服務(wù)器發(fā)送日志數(shù)據(jù),接收所述服務(wù)器發(fā)送的所述服務(wù)器的壓力等級(jí)參數(shù);
確定單元43,用于根據(jù)所述服務(wù)器的壓力等級(jí)參數(shù)確定下一次向所述服務(wù)器發(fā)送日志數(shù)據(jù)的目標(biāo)時(shí)間;
所述通信單元42,還用于在所述目標(biāo)時(shí)間達(dá)到時(shí),向所述服務(wù)器發(fā)送日志數(shù)據(jù)。
本發(fā)明實(shí)施例中,所述通信單元42,還用于接收所述服務(wù)器發(fā)送的接收狀態(tài)參數(shù);
本發(fā)明實(shí)施例中,確定單元43,還用于當(dāng)所述接收狀態(tài)參數(shù)表征所述服務(wù)器為接收等待狀態(tài)時(shí),根據(jù)所述服務(wù)器的壓力等級(jí)參數(shù)確定下一次向所述服務(wù)器發(fā)送日志數(shù)據(jù)的目標(biāo)時(shí)間。
本發(fā)明實(shí)施例中,所述通信單元42,還用于將所述日志數(shù)據(jù)以JSON格式發(fā)送給服務(wù)器;接收所述服務(wù)器以JSON格式發(fā)送的所述服務(wù)器的壓力等級(jí)參數(shù)。
本發(fā)明實(shí)施例中,所述服務(wù)器的壓力等級(jí)參數(shù)能夠表征N種壓力等級(jí),N為正整數(shù),其中,每種壓力等級(jí)對(duì)應(yīng)不同的目標(biāo)時(shí)間。
本發(fā)明實(shí)施例中,所述確定單元43,還用于確定與所述服務(wù)器的壓力等級(jí)參數(shù)相對(duì)應(yīng)的延遲基數(shù)值;根據(jù)所述延遲基數(shù)值以及隨機(jī)數(shù)值,計(jì)算得到所述目標(biāo)時(shí)間,其中,所述服務(wù)器的壓力等級(jí)參數(shù)越大時(shí),與所述服務(wù)器的壓力等級(jí)參數(shù)相對(duì)應(yīng)的延遲基數(shù)值越大。
本發(fā)明實(shí)施例中,所述隨機(jī)數(shù)值的確定方式能夠動(dòng)態(tài)改變。
本發(fā)明實(shí)施例中,所述客戶端還包括:
丟棄單元44,用于當(dāng)所述壓力等級(jí)參數(shù)超過(guò)門限值時(shí),丟棄下一次向所述服務(wù)器發(fā)送的日志數(shù)據(jù);
簡(jiǎn)化單元45,用于當(dāng)所述壓力等級(jí)參數(shù)超過(guò)門限值時(shí),將下一次向所述服務(wù)器發(fā)送的日志數(shù)據(jù)進(jìn)行簡(jiǎn)化并在距離當(dāng)前時(shí)刻超過(guò)預(yù)設(shè)時(shí)長(zhǎng)的時(shí)刻發(fā)送給所述服務(wù)器。
本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,圖4所示的客戶端中的各單元的實(shí)現(xiàn)功能可參照前述日志收集方法的相關(guān)描述而理解。圖4所示的客戶端中的各單元的功能可通過(guò)運(yùn)行于處理器上的程序而實(shí)現(xiàn),也可通過(guò)具體的邏輯電路而實(shí)現(xiàn)。
本發(fā)明實(shí)施例還提供了一種電子設(shè)備,參照?qǐng)D6,包括存儲(chǔ)器61、處理器62及存儲(chǔ)在存儲(chǔ)器上并可在處理器上運(yùn)行的計(jì)算機(jī)程序,所述處理器62執(zhí)行所述程序時(shí)實(shí)現(xiàn)以下步驟:
收集日志數(shù)據(jù);
向服務(wù)器發(fā)送日志數(shù)據(jù),接收所述服務(wù)器發(fā)送的所述服務(wù)器的壓力等級(jí)參數(shù);
根據(jù)所述服務(wù)器的壓力等級(jí)參數(shù)確定下一次向所述服務(wù)器發(fā)送日志數(shù)據(jù)的目標(biāo)時(shí)間;
在所述目標(biāo)時(shí)間達(dá)到時(shí),向所述服務(wù)器發(fā)送日志數(shù)據(jù)。
本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,上述處理器所執(zhí)行的步驟還可以包括本發(fā)明實(shí)施例中日志收集方法中所描述的任意相關(guān)步驟。
圖5為本發(fā)明實(shí)施例的服務(wù)器的結(jié)構(gòu)組成示意圖,如圖5所示,所述服務(wù)器包括:
通信單元51,用于接收客戶端發(fā)送的日志數(shù)據(jù);
確定單元52,用于確定服務(wù)器的壓力等級(jí)參數(shù);
所述通信單元51,還用于向所述客戶端發(fā)送服務(wù)器的壓力等級(jí)參數(shù),以使所述客戶端根據(jù)所述服務(wù)器的壓力等級(jí)參數(shù)確定下一次向所述服務(wù)器發(fā)送日志數(shù)據(jù)的目標(biāo)時(shí)間;在所述目標(biāo)時(shí)間達(dá)到時(shí),接收所述客戶端發(fā)送的日志數(shù)據(jù)。
本發(fā)明實(shí)施例中,所述通信單元51,還用于向所述客戶端發(fā)送服務(wù)器的接收狀態(tài)參數(shù),以使所述客戶端在接收狀態(tài)參數(shù)表征所述服務(wù)器為等待狀態(tài)時(shí),根據(jù)所述服務(wù)器的壓力等級(jí)參數(shù)確定下一次向所述服務(wù)器發(fā)送日志數(shù)據(jù)的目標(biāo)時(shí)間。
本發(fā)明實(shí)施例中,所述通信單元51,還用于接收客戶端以JSON格式發(fā)送的日志數(shù)據(jù);向所述客戶端以JSON格式發(fā)送服務(wù)器的壓力等級(jí)參數(shù)。
本發(fā)明實(shí)施例中,所述服務(wù)器還包括:
kafka單元53,用于當(dāng)成功接收日志數(shù)據(jù)后,通過(guò)分布式發(fā)布訂閱系統(tǒng)kafka消息隊(duì)列對(duì)所述日志數(shù)據(jù)進(jìn)行處理。
本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,圖5所示的服務(wù)器中的各單元的實(shí)現(xiàn)功能可參照前述日志收集方法的相關(guān)描述而理解。圖5所示的服務(wù)器中的各單元的功能可通過(guò)運(yùn)行于處理器上的程序而實(shí)現(xiàn),也可通過(guò)具體的邏輯電路而實(shí)現(xiàn)。
本發(fā)明實(shí)施例還提供了一種電子設(shè)備,參照?qǐng)D6,包括存儲(chǔ),61、處理器62及存儲(chǔ)在存儲(chǔ)器上并可在處理器上運(yùn)行的計(jì)算機(jī)程序,所述處理器62執(zhí)行所述程序時(shí)實(shí)現(xiàn)以下步驟:
接收客戶端發(fā)送的日志數(shù)據(jù);
向所述客戶端發(fā)送所述服務(wù)器的壓力等級(jí)參數(shù),以使所述客戶端根據(jù)所述服務(wù)器的壓力等級(jí)參數(shù)確定下一次向所述服務(wù)器發(fā)送日志數(shù)據(jù)的目標(biāo)時(shí)間;
在所述目標(biāo)時(shí)間達(dá)到時(shí),接收所述客戶端發(fā)送的日志數(shù)據(jù)。
本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,上述處理器所執(zhí)行的步驟還可以包括本發(fā)明實(shí)施例中日志收集方法中所描述的任意相關(guān)步驟。
本發(fā)明實(shí)施例上述各個(gè)設(shè)備如果以軟件功能模塊的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),也可以存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中?;谶@樣的理解,本發(fā)明實(shí)施例的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī)、服務(wù)器、或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分。而前述的存儲(chǔ)介質(zhì)包括:U盤、移動(dòng)硬盤、只讀存儲(chǔ)器(ROM,Read Only Memory)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。這樣,本發(fā)明實(shí)施例不限制于任何特定的硬件和軟件結(jié)合。
相應(yīng)地,本發(fā)明實(shí)施例還提供一種存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,該程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)本發(fā)明實(shí)施例中日志收集方法中所描述的任意相關(guān)步驟。
本發(fā)明實(shí)施例所記載的技術(shù)方案之間,在不沖突的情況下,可以任意組合。
在本發(fā)明所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的方法和智能設(shè)備,可以通過(guò)其它的方式實(shí)現(xiàn)。以上所描述的設(shè)備實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,如:多個(gè)單元或組件可以結(jié)合,或可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另外,所顯示或討論的各組成部分相互之間的耦合、或直接耦合、或通信連接可以是通過(guò)一些接口,設(shè)備或單元的間接耦合或通信連接,可以是電性的、機(jī)械的或其它形式的。
上述作為分離部件說(shuō)明的單元可以是、或也可以不是物理上分開的,作為單元顯示的部件可以是、或也可以不是物理單元,即可以位于一個(gè)地方,也可以分布到多個(gè)網(wǎng)絡(luò)單元上;可以根據(jù)實(shí)際的需要選擇其中的部分或全部單元來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本發(fā)明各實(shí)施例中的各功能單元可以全部集成在一個(gè)第二處理單元中,也可以是各單元分別單獨(dú)作為一個(gè)單元,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中;上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用硬件加軟件功能單元的形式實(shí)現(xiàn)。
以上所述,僅為本發(fā)明的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。