]在本實現(xiàn)方式中,響應(yīng)于發(fā)送第二業(yè)務(wù)量數(shù)據(jù)至業(yè)務(wù)節(jié)點(diǎn)失敗,可以加載最后一次的第二快照和新建第二重做日志中未記錄第二發(fā)送事務(wù)的結(jié)束標(biāo)記的第二發(fā)送事務(wù)的開始標(biāo)記,以便根據(jù)該第二快照恢復(fù)內(nèi)存中的數(shù)據(jù)集,根據(jù)未記錄第二發(fā)送事務(wù)的結(jié)束標(biāo)記的第二發(fā)送事務(wù)的開始標(biāo)記中包括的發(fā)送的第二業(yè)務(wù)量數(shù)據(jù)的時間戳,確定需要發(fā)送的第二業(yè)務(wù)量數(shù)據(jù),之后發(fā)送確定的該第二業(yè)務(wù)量數(shù)據(jù)。
[0185]步驟1102,根據(jù)最后一次的第二快照以及最后一次的第二快照之后由成功事務(wù)造成的數(shù)據(jù)更改,執(zhí)行第二操作流程。
[0186]在本實施例中,可以根據(jù)加載的最后一次的第二快照以及最后一次的第二快照之后由成功事務(wù)造成的數(shù)據(jù)更改,重新執(zhí)行之前失敗的第二操作流程。
[0187]在本實施例的一些可選實現(xiàn)方式中,與上述的響應(yīng)于根據(jù)用戶信息,合并來自于不同單機(jī)節(jié)點(diǎn)且具有同一時間戳的第一業(yè)務(wù)量數(shù)據(jù),得到第二業(yè)務(wù)量數(shù)據(jù)失敗,加載最后一次的第二快照和新建第二重做日志中最后一次記錄的第二獲取事務(wù)的結(jié)束標(biāo)記相對應(yīng),根據(jù)最后一次的第二快照以及數(shù)據(jù)更改,執(zhí)行第二操作流程可以包括:根據(jù)最后一次的第二快照和新建第二重做日志中最后一次記錄的第二獲取事務(wù)的結(jié)束標(biāo)記,繼續(xù)執(zhí)行根據(jù)用戶信息,合并來自于不同單機(jī)節(jié)點(diǎn)且具有同一時間戳的第一業(yè)務(wù)量數(shù)據(jù),得到第二業(yè)務(wù)量數(shù)據(jù),之后執(zhí)行發(fā)送第二業(yè)務(wù)量數(shù)據(jù)至業(yè)務(wù)節(jié)點(diǎn)。
[0188]在本實施例的一些可選實現(xiàn)方式中,與上述的響應(yīng)于發(fā)送第二業(yè)務(wù)量數(shù)據(jù)至業(yè)務(wù)節(jié)點(diǎn)失敗,加載最后一次的第二快照和新建第二重做日志中未記錄第二發(fā)送事務(wù)的結(jié)束標(biāo)記的第二發(fā)送事務(wù)的開始標(biāo)記相對應(yīng),根據(jù)最后一次的第二快照以及數(shù)據(jù)更改,執(zhí)行第二操作流程可以包括:根據(jù)最后一次的第二快照和新建第二重做日志中未記錄第二發(fā)送事務(wù)的結(jié)束標(biāo)記的第二發(fā)送事務(wù)的開始標(biāo)記,重試發(fā)送第二業(yè)務(wù)量數(shù)據(jù)至業(yè)務(wù)節(jié)點(diǎn)。
[0189]從圖11中可以看出,與圖10對應(yīng)的實施例相比,本實施例中的分析用戶業(yè)務(wù)量的流程1100突出了恢復(fù)失敗的第二操作流程的步驟。由此,本實施例描述的方案可以防止數(shù)據(jù)處理節(jié)點(diǎn)在執(zhí)行第二操作流程時因宕機(jī)而造成數(shù)據(jù)丟失。
[0190]作為對上述各圖所示方法的實現(xiàn),本申請?zhí)峁┝艘环N分析用戶業(yè)務(wù)量的系統(tǒng)的一個實施例,該系統(tǒng)實施例與圖2所示的方法實施例相對應(yīng),該系統(tǒng)中的各個節(jié)點(diǎn)可以應(yīng)用于各服務(wù)器中。
[0191]如圖12所示,本實施例的分析用戶業(yè)務(wù)量的系統(tǒng)1200包括:單機(jī)節(jié)點(diǎn)1201,數(shù)據(jù)處理節(jié)點(diǎn)1202和業(yè)務(wù)節(jié)點(diǎn)1203。
[0192]單機(jī)節(jié)點(diǎn)1201,用于以分鐘為間隔進(jìn)行以下操作:獲取具有同一時間戳的請求日志,從請求日志中解析初始業(yè)務(wù)量數(shù)據(jù),合并屬于同一用戶的初始業(yè)務(wù)量數(shù)據(jù),得到第一業(yè)務(wù)量數(shù)據(jù),發(fā)送第一業(yè)務(wù)量數(shù)據(jù)至數(shù)據(jù)處理節(jié)點(diǎn)。
[0193]在本實施例中,單機(jī)節(jié)點(diǎn)可以為服務(wù)器集群中的服務(wù)器,通過服務(wù)器集群將很多服務(wù)器集中起來一起進(jìn)行同一種服務(wù),在客戶端看來服務(wù)器集群就像是只有一個服務(wù)器。服務(wù)器集群可以利用多個計算機(jī)進(jìn)行并行計算從而獲得很高的計算速度,也可以用多個計算機(jī)做備份,從而使得任何一個服務(wù)器壞了整個服務(wù)器集群還是能正常運(yùn)行。
[0194]在上述的多個服務(wù)器中,每一個服務(wù)器可以作為單機(jī)節(jié)點(diǎn),獲取本地具有同一時間戳Ti的請求日志,該請求日志用于記錄用戶的業(yè)務(wù)量請求,例如記錄用戶的流量、容量和API調(diào)用等業(yè)務(wù)量請求,該請求日志的時間戳的格式為年月日時分。
[0195]每一個單機(jī)節(jié)點(diǎn)在獲取本地具有同一時間戳Ti的請求日志之后,從請求日志中解析出分析業(yè)務(wù)量所需要的初始業(yè)務(wù)量數(shù)據(jù),并將屬于同一用戶的初始業(yè)務(wù)量數(shù)據(jù)進(jìn)行合并,得到第一業(yè)務(wù)量數(shù)據(jù)。
[0196]單機(jī)節(jié)點(diǎn)在進(jìn)行初始業(yè)務(wù)量數(shù)據(jù)的合并時,可以僅根據(jù)屬于同一用戶這一特征合并初始業(yè)務(wù)量數(shù)據(jù),例如將解析出的初始業(yè)務(wù)量數(shù)據(jù)分別合并至張某、王某及其他用戶名下;也可以根據(jù)屬于同一用戶之下的同一業(yè)務(wù)量種類,分別合并初始業(yè)務(wù)量數(shù)據(jù),例如將解析出的屬于張某的初始業(yè)務(wù)量數(shù)據(jù)分別合并至張某的流量、容量和API調(diào)用這三種業(yè)務(wù)量種類下。
[0197]單機(jī)節(jié)點(diǎn)在進(jìn)行上述合并步驟之后,將合并得到的第一業(yè)務(wù)量數(shù)據(jù)發(fā)送給數(shù)據(jù)處理節(jié)點(diǎn),以便進(jìn)行下一步處理。
[0198]數(shù)據(jù)處理節(jié)點(diǎn)1202,用于以分鐘為間隔進(jìn)行以下操作:根據(jù)用戶信息,合并來自于不同單機(jī)節(jié)點(diǎn)且具有同一時間戳的第一業(yè)務(wù)量數(shù)據(jù),得到第二業(yè)務(wù)量數(shù)據(jù),發(fā)送第二業(yè)務(wù)量數(shù)據(jù)至業(yè)務(wù)節(jié)點(diǎn)。
[0199]在本實施例中,第二操作流程可以運(yùn)行于數(shù)據(jù)處理節(jié)點(diǎn)上。該數(shù)據(jù)處理節(jié)點(diǎn),可以根據(jù)接收的第一業(yè)務(wù)量數(shù)據(jù)以及服務(wù)器的硬件配置來確定:當(dāng)接收的第一業(yè)務(wù)量數(shù)據(jù)較少能夠和處理初始業(yè)務(wù)量數(shù)據(jù)的單機(jī)節(jié)點(diǎn)合并時,數(shù)據(jù)處理節(jié)點(diǎn)可以是上述的單機(jī)節(jié)點(diǎn)中的一個;當(dāng)接收的第一業(yè)務(wù)量數(shù)據(jù)需要使用單獨(dú)的服務(wù)器進(jìn)行處理時,數(shù)據(jù)處理節(jié)點(diǎn)也可以是獨(dú)立于上述的單機(jī)節(jié)點(diǎn)的進(jìn)行數(shù)據(jù)處理的專用服務(wù)器,該專用服務(wù)器可以位于上述的包括單機(jī)節(jié)點(diǎn)的服務(wù)器集群中,也可以獨(dú)立于上述的包括單機(jī)節(jié)點(diǎn)的服務(wù)器集群存在;當(dāng)接收的第一業(yè)務(wù)量數(shù)據(jù)特別多需要使用多臺服務(wù)器組成專用服務(wù)器集群進(jìn)行處理時,數(shù)據(jù)處理節(jié)點(diǎn)還可以是專用的服務(wù)器集群。
[0200]數(shù)據(jù)處理節(jié)點(diǎn)在接收到上述的多個單機(jī)節(jié)點(diǎn)發(fā)送的第一業(yè)務(wù)量數(shù)據(jù)之后,可以按照用戶信息,合并來自于不同單機(jī)節(jié)點(diǎn)且具有統(tǒng)一時間戳的第一業(yè)務(wù)量數(shù)據(jù)。
[0201]數(shù)據(jù)處理節(jié)點(diǎn)在合并第一業(yè)務(wù)量數(shù)據(jù)時,可以按照單機(jī)節(jié)點(diǎn)合并初始業(yè)務(wù)量的格式進(jìn)行第一業(yè)務(wù)量數(shù)據(jù)的合并:當(dāng)單機(jī)節(jié)點(diǎn)僅按照屬于同一用戶這一特征合并第一業(yè)務(wù)量數(shù)據(jù)時,數(shù)據(jù)處理節(jié)點(diǎn)也僅按照屬于同一用戶這一特征合并第一業(yè)務(wù)量數(shù)據(jù),例如將從不同單機(jī)節(jié)點(diǎn)接收的屬于同一用戶的第一業(yè)務(wù)量數(shù)據(jù)分別合并至張某、王某及其他用戶名下;當(dāng)單機(jī)節(jié)點(diǎn)按照屬于同一用戶的同一業(yè)務(wù)量種類分別合并初始業(yè)務(wù)量數(shù)據(jù)時,數(shù)據(jù)處理節(jié)點(diǎn)也可以按照屬于同一用戶之下的同一業(yè)務(wù)量種類,分別合并第一業(yè)務(wù)量數(shù)據(jù),例如將來自于不同單機(jī)節(jié)點(diǎn)的屬于張某的第一業(yè)務(wù)量數(shù)據(jù)分別合并至張某的流量、容量和API調(diào)用這三種業(yè)務(wù)量種類下。
[0202]數(shù)據(jù)處理節(jié)點(diǎn)在進(jìn)行上述合并步驟之后,將合并得到的第二業(yè)務(wù)量數(shù)據(jù)發(fā)送給業(yè)務(wù)節(jié)點(diǎn),以便進(jìn)行下一步處理。
[0203]業(yè)務(wù)節(jié)點(diǎn)1203,根據(jù)接收的第二業(yè)務(wù)量數(shù)據(jù),分析用戶業(yè)務(wù)量。
[0204]在本實施例中,該業(yè)務(wù)節(jié)點(diǎn),與數(shù)據(jù)處理節(jié)點(diǎn)類似,可以根據(jù)接收的第二業(yè)務(wù)量數(shù)據(jù)以及服務(wù)器的硬件配置來確定:當(dāng)接收的第二業(yè)務(wù)量數(shù)據(jù)能夠和初始業(yè)務(wù)量數(shù)據(jù)和/或第一業(yè)務(wù)量數(shù)據(jù)位于同一單機(jī)節(jié)點(diǎn)處理時,業(yè)務(wù)節(jié)點(diǎn)可以是上述的單機(jī)節(jié)點(diǎn)或數(shù)據(jù)處理節(jié)點(diǎn)中的一個;當(dāng)接收的第二業(yè)務(wù)量數(shù)據(jù)需要使用單獨(dú)的服務(wù)器進(jìn)行處理時,業(yè)務(wù)節(jié)點(diǎn)也可以是獨(dú)立于上述的單機(jī)節(jié)點(diǎn)或數(shù)據(jù)處理節(jié)點(diǎn)的進(jìn)行用戶業(yè)務(wù)量分析的專用服務(wù)器,該專用服務(wù)器可以位于上述的包括單機(jī)節(jié)點(diǎn)的服務(wù)器集群中,也可以獨(dú)立于上述的包括單機(jī)節(jié)點(diǎn)的服務(wù)器集群存在;當(dāng)接收的第二業(yè)務(wù)量數(shù)據(jù)特別多,需要使用多臺服務(wù)器組成專用服務(wù)器集群進(jìn)行處理時,業(yè)務(wù)節(jié)點(diǎn)還可以是專用的服務(wù)器集群。
[0205]本申請的上述實施例提供的系統(tǒng)在業(yè)務(wù)量數(shù)據(jù)傳輸?shù)倪^程中進(jìn)行了兩次數(shù)據(jù)合并,減少了不必要的重復(fù)數(shù)據(jù)的傳輸,并實現(xiàn)了按分鐘處理業(yè)務(wù)量數(shù)據(jù),計算延遲較低。
[0206]本領(lǐng)域技術(shù)人員可以理解,上述各節(jié)點(diǎn)中還包括一些其他公知結(jié)構(gòu),例如處理器、存儲器等,為了不必要地模糊本公開的實施例,這些公知的結(jié)構(gòu)在圖12中未示出。
[0207]下面參考圖13,其示出了適于用來實現(xiàn)本申請實施例的服務(wù)器的計算機(jī)系統(tǒng)1300的結(jié)構(gòu)示意圖。
[0208]如圖13所示,計算機(jī)系統(tǒng)1300包括中央處理單元(CPU) 1301,其可以根據(jù)存儲在只讀存儲器(ROM) 1302中的程序或者從存儲部分1308加載到隨機(jī)訪問存儲器(RAM) 1303中的程序而執(zhí)行各種適當(dāng)?shù)膭幼骱吞幚?。在RAM 1303中,還存儲有系統(tǒng)1300操作所需的各種程序和數(shù)據(jù)。CPU 130UR0M 1302以及RAM 1303通過總線1304彼此相連。輸入/輸出(I/O)接口 1305也連接至總線1304。
[0209]以下部件連接至I/O接口 1305:包括鍵盤、鼠標(biāo)等的輸入部分1306 ;包括諸如陰極射線管(CRT)、液晶顯示器(LCD)等以及揚(yáng)聲器等的輸出部分1307 ;包括硬盤等的存儲部分1308 ;以及包括諸如LAN卡、調(diào)制解調(diào)器等的網(wǎng)絡(luò)接口卡的通信部分1309。通信部分1309經(jīng)由諸如因特網(wǎng)的網(wǎng)絡(luò)執(zhí)行通信處理。驅(qū)動器1310也根據(jù)需要連接至I/O接口1305。可拆卸介質(zhì)1311,諸如磁盤、光盤、磁光盤、半導(dǎo)體存儲器等等,根據(jù)需要安裝在驅(qū)動器1310上,以便于從其上讀出的計算機(jī)程序根據(jù)需要被安裝入存儲部分1308。
[0210]特別地,根據(jù)本公開的實施例,上文參考流程圖描述的過程可以被實現(xiàn)為計算機(jī)軟件程序。例如,本公開的實施例包括一種計算機(jī)程序產(chǎn)品,其包括有形地包含在機(jī)器可讀介質(zhì)上的計算機(jī)程序,所述計算機(jī)程序包含用于執(zhí)行流程圖所示的方法的程序代碼。在這樣的實施例中,該計算機(jī)程序可以通過通信部分1309從網(wǎng)絡(luò)上被下載和安裝,和/或從可拆卸介質(zhì)1311被安裝。
[0211]附圖中的流程圖和框圖,圖示了按照本申請各種實施例的系統(tǒng)、方法和計算機(jī)程序產(chǎn)品的可能實現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個方框可以代表一個模塊、程序段、或代碼的一部分,所述模塊、程序段、或代碼的一部分包含一個或多個用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個接連地表示的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或操作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機(jī)指令的組合來實現(xiàn)。
[0212]作為另一方面,本申請還提供了一種非易失性計算機(jī)存儲介質(zhì),該非易失性計算機(jī)存儲介質(zhì)可以是上述實施例中所述系統(tǒng)中所包含的非易失性計算機(jī)存儲介質(zhì);也可以是單獨(dú)存在,未裝配入終端中的非易失性計算機(jī)存儲介質(zhì)。上述非易失性計算機(jī)存儲介質(zhì)存儲有一個或者多個程序,當(dāng)所述一個或者多個程序被一個設(shè)備執(zhí)行時,使得所述系統(tǒng):單機(jī)節(jié)點(diǎn)以分鐘為間隔執(zhí)行以下第一操作流程:獲取具有同一時間戳的請求日志,從請求日志中解析初始業(yè)務(wù)量數(shù)據(jù),合并屬于同一用戶的初始業(yè)務(wù)量數(shù)據(jù),得到第一業(yè)務(wù)量數(shù)據(jù),發(fā)送第一業(yè)務(wù)量數(shù)據(jù)至數(shù)據(jù)處理節(jié)點(diǎn),其中,所述請求日志用于記錄用戶的業(yè)務(wù)量請求,所述時間戳的格式為年月日時分;數(shù)據(jù)處理節(jié)點(diǎn)以分鐘為間隔執(zhí)行以下第二操作流程:根據(jù)用戶信息,合并來自于不同單機(jī)節(jié)點(diǎn)且具有同一時間戳的第一業(yè)務(wù)量數(shù)據(jù),得到第二業(yè)務(wù)量數(shù)據(jù),發(fā)送第二業(yè)務(wù)量數(shù)據(jù)至業(yè)務(wù)節(jié)點(diǎn);業(yè)務(wù)節(jié)點(diǎn)根據(jù)接收的第二業(yè)務(wù)量數(shù)據(jù),分析用戶業(yè)務(wù)量。
[0213]以上描述僅為本申請的較佳實施例以及對所運(yùn)用技術(shù)原理的說明。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,本申請中所涉及的發(fā)明范圍,并不限于上述技術(shù)特征的特定組合而成的技術(shù)方案,同時也應(yīng)涵蓋在不脫離所述發(fā)明構(gòu)思的情況下,由上述技術(shù)特征或其等同特征進(jìn)行任意組合而形成的其它技術(shù)方案。例如上述特征與本申請中公開的(但不限于)具有類似功能的技術(shù)特征進(jìn)行互相替換而形成的技術(shù)方案。
【主權(quán)項】
1.一種分析用戶業(yè)務(wù)量的方法,其特征在于,所述方法包括: 單機(jī)節(jié)點(diǎn)以分鐘為間隔執(zhí)行以下第一操作流程:獲取具有同一時間戳的請求日志,從所述請求日志中解析初始業(yè)務(wù)量數(shù)據(jù),合并屬于同一用戶的初始業(yè)務(wù)量數(shù)據(jù),得到第一業(yè)務(wù)量數(shù)據(jù),發(fā)送所述第一業(yè)務(wù)量數(shù)據(jù)至數(shù)據(jù)處理節(jié)點(diǎn),其中,所述請求日志用于記錄用戶的業(yè)務(wù)量請求,所述時間戳的格式為年月日時分; 所述數(shù)據(jù)處理節(jié)點(diǎn)以分鐘為間隔執(zhí)行以下第二操作流程:根據(jù)用戶信息,合并來自于不同單機(jī)節(jié)點(diǎn)且具有所述同一時間戳的所述第一業(yè)務(wù)量數(shù)據(jù),得到第二業(yè)務(wù)量數(shù)據(jù),發(fā)送所述第二業(yè)務(wù)量數(shù)據(jù)至業(yè)務(wù)節(jié)點(diǎn); 所述業(yè)務(wù)節(jié)點(diǎn)根據(jù)接收的所述第二業(yè)務(wù)量數(shù)據(jù),分析用戶業(yè)務(wù)量。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述發(fā)送所述第一業(yè)務(wù)量數(shù)據(jù)至數(shù)據(jù)處理節(jié)點(diǎn)包括: 發(fā)送所述第一業(yè)務(wù)量數(shù)據(jù)至數(shù)據(jù)處理節(jié)點(diǎn),并記錄第一發(fā)送事務(wù)的處理標(biāo)記至預(yù)設(shè)的第一重做日志; 其中,所述第一發(fā)送事務(wù)為發(fā)送所述第一業(yè)務(wù)量數(shù)據(jù)至數(shù)據(jù)處理節(jié)點(diǎn)的事務(wù);所述第一發(fā)送事務(wù)的處理標(biāo)記至少包括所述第一發(fā)送事務(wù)的開始標(biāo)記和結(jié)束標(biāo)記。3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述發(fā)送所述第一業(yè)務(wù)量數(shù)據(jù)至數(shù)據(jù)處理節(jié)點(diǎn),并記錄第一發(fā)送事務(wù)的處理標(biāo)記至預(yù)設(shè)的第一重做日志包括: 記錄第一發(fā)送事務(wù)的開始標(biāo)記至預(yù)設(shè)的第一重做日志,其中,所述第一發(fā)送事務(wù)的開始標(biāo)記包括發(fā)送的第一業(yè)務(wù)量數(shù)據(jù)的時間戳; 根據(jù)所述發(fā)送的第一業(yè)務(wù)量數(shù)據(jù)的時間戳,獲取第一業(yè)務(wù)量數(shù)據(jù); 將獲取的所述第一業(yè)務(wù)量數(shù)據(jù)編號,形成第一消息隊列; 發(fā)送所述第一消息隊列至所述數(shù)據(jù)處理節(jié)點(diǎn); 響應(yīng)于發(fā)送所述第一消息隊列失敗,重試發(fā)送所述第一消息隊列; 若所述第一消息隊列重試發(fā)送的次數(shù)達(dá)到第一預(yù)設(shè)重試次數(shù)或重試發(fā)送的時間達(dá)到第一預(yù)設(shè)重試時間,將從內(nèi)存中獲取的所述第一業(yè)務(wù)量數(shù)據(jù)合并回內(nèi)存,并記錄第一發(fā)送事務(wù)的異常終止標(biāo)記至所述第一重做日志,其中,所述第一發(fā)送事務(wù)的異常終止標(biāo)記包括發(fā)送失敗的第一業(yè)務(wù)量數(shù)據(jù)的時間戳; 響應(yīng)于發(fā)送所述第一消息隊列成功,更新發(fā)送所述第一消息隊列的編號,并記錄第一發(fā)送事務(wù)的結(jié)束標(biāo)記至所述第一重做日志,其中,所述