一種數(shù)據(jù)監(jiān)控系統(tǒng)和方法
【專利摘要】本發(fā)明的實施方式提供了一種數(shù)據(jù)監(jiān)控系統(tǒng)。該系統(tǒng)包括:數(shù)據(jù)發(fā)送模塊、消息隊列模塊、數(shù)據(jù)處理模塊,其中:所述數(shù)據(jù)發(fā)送模塊,配置用于向所述消息隊列模塊發(fā)送待處理數(shù)據(jù);所述消息隊列模塊,配置用于接收并存儲所述數(shù)據(jù)發(fā)送模塊發(fā)送的所述待處理數(shù)據(jù),以及,向所述數(shù)據(jù)處理模塊發(fā)送待處理數(shù)據(jù);所述數(shù)據(jù)處理模塊,配置用于當接收到所述消息隊列模塊發(fā)送的待處理數(shù)據(jù)時,按照預(yù)置的監(jiān)控規(guī)則對所述待處理數(shù)據(jù)進行處理,輸出處理結(jié)果。本系統(tǒng)實現(xiàn)了對海量數(shù)據(jù)的實時處理,顯著提高了系統(tǒng)對實時數(shù)據(jù)的處理能力。此外,本發(fā)明的實施方式提供了一種數(shù)據(jù)監(jiān)控方法。
【專利說明】一種數(shù)據(jù)監(jiān)控系統(tǒng)和方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明的實施方式涉及數(shù)據(jù)處理領(lǐng)域,更具體地,本發(fā)明的實施方式涉及一種數(shù) 據(jù)監(jiān)控系統(tǒng)和方法。
【背景技術(shù)】
[0002] 本部分旨在為權(quán)利要求書中陳述的本發(fā)明的實施方式提供背景或上下文。此處的 描述不因為包括在本部分中就承認是現(xiàn)有技術(shù)。
[0003] 隨著信息科技日新月異的發(fā)展,信息呈現(xiàn)出爆發(fā)式的膨脹,產(chǎn)生了大量待處理的 實時數(shù)據(jù),例如網(wǎng)絡(luò)監(jiān)測數(shù)據(jù)、電信呼叫記錄、金融應(yīng)用數(shù)據(jù)、Web日志及點擊流數(shù)據(jù)等。這 些實時數(shù)據(jù)具有數(shù)據(jù)量極大、生成速度快和生成速率隨時間變化等特點。如何在資源有限 的情況下,實現(xiàn)對這些實時數(shù)據(jù)的快速、有效處理成為一個亟需解決的問題。
[0004] 傳統(tǒng)的關(guān)系數(shù)據(jù)庫管理系統(tǒng)在處理有限的存儲數(shù)據(jù)方面是高效的,但是處理大量 的實時數(shù)據(jù)時則效率低下。
【發(fā)明內(nèi)容】
[0005] 因此在現(xiàn)有技術(shù)中,如何高效地處理海量實時數(shù)據(jù),是非常令人煩惱的過程。
[0006] 為此,非常需要一種改進的數(shù)據(jù)監(jiān)控系統(tǒng)和方法,以高效地處理海量實時數(shù)據(jù)。
[0007] 在本上下文中,本發(fā)明的實施方式期望提供一種數(shù)據(jù)監(jiān)控系統(tǒng)和方法。
[0008] 在本發(fā)明實施方式的第一方面中,提供了一種系統(tǒng),包括:數(shù)據(jù)發(fā)送模塊、消息隊 列模塊、數(shù)據(jù)處理模塊,其中:
[0009] 所述數(shù)據(jù)發(fā)送模塊,配置用于向所述消息隊列模塊發(fā)送待處理數(shù)據(jù);
[0010] 所述消息隊列模塊,配置用于接收并存儲所述數(shù)據(jù)發(fā)送模塊發(fā)送的所述待處理數(shù) 據(jù),以及,向所述數(shù)據(jù)處理模塊發(fā)送待處理數(shù)據(jù);
[0011] 所述數(shù)據(jù)處理模塊,配置用于當接收到所述消息隊列模塊發(fā)送的待處理數(shù)據(jù)時, 按照預(yù)置的監(jiān)控規(guī)則對所述待處理數(shù)據(jù)進行處理,輸出處理結(jié)果。
[0012] 優(yōu)選地,所述數(shù)據(jù)發(fā)送模塊配置用于異步地向所述消息隊列模塊發(fā)送待處理數(shù) 據(jù)。
[0013] 優(yōu)選地,所述數(shù)據(jù)處理模塊配置用于:
[0014] 當所述數(shù)據(jù)處理模塊處于空閑狀態(tài)時,向所述消息隊列模塊發(fā)送數(shù)據(jù)請求用于請 求待處理數(shù)據(jù);
[0015] 所述消息隊列模塊配置用于:
[0016] 當接收到所述數(shù)據(jù)處理模塊發(fā)送的數(shù)據(jù)請求時,向發(fā)送數(shù)據(jù)請求的數(shù)據(jù)處理模塊 發(fā)送待處理數(shù)據(jù)。
[0017] 優(yōu)選地,所述消息隊列模塊配置用于:
[0018] 根據(jù)存儲的數(shù)據(jù)訂閱信息,向數(shù)據(jù)處理模塊發(fā)送與所述數(shù)據(jù)訂閱信息對應(yīng)的待處 理數(shù)據(jù)。
[0019] 優(yōu)選地,所述數(shù)據(jù)處理模塊包括數(shù)據(jù)聚合單元和數(shù)據(jù)收集單元,
[0020] 所述數(shù)據(jù)聚合單元配置用于:當所述預(yù)置的監(jiān)控規(guī)則包括監(jiān)控對象和監(jiān)控指標 時,按照預(yù)置的監(jiān)控規(guī)則將待處理數(shù)據(jù)聚合處理成以監(jiān)控對象為鍵、監(jiān)控指標為值的鍵值 對數(shù)據(jù),以及,對聚合處理后的數(shù)據(jù)進行哈希運算,得到與其對應(yīng)的數(shù)據(jù)收集單元的訪問地 址,將所述聚合處理后的數(shù)據(jù)發(fā)送到相應(yīng)位置;
[0021] 所述數(shù)據(jù)收集單元配置用于:接收所述數(shù)據(jù)聚合單元聚合處理后的數(shù)據(jù),對具有 相同鍵的鍵值對數(shù)據(jù)進行合并得到合并結(jié)果。
[0022] 優(yōu)選地,所述數(shù)據(jù)處理模塊包括至少兩個數(shù)據(jù)聚合單元以及至少兩個數(shù)據(jù)收集單 J Li 〇
[0023] 優(yōu)選地,所述系統(tǒng)包括至少兩個數(shù)據(jù)發(fā)送模塊;和/或
[0024] 所述系統(tǒng)包括至少兩個消息隊列模塊。
[0025] 優(yōu)選地,所述系統(tǒng)還包括:
[0026] 報警模塊,配置用于對經(jīng)過數(shù)據(jù)處理模塊處理后的處理結(jié)果進行統(tǒng)計,當獲得的 統(tǒng)計結(jié)果滿足預(yù)置的報警條件時,輸出報警提示信息。
[0027] 優(yōu)選地,所述系統(tǒng)還包括:
[0028] 統(tǒng)一配置模塊,配置用于對所述數(shù)據(jù)處理模塊進行統(tǒng)一配置。
[0029] 在本發(fā)明實施方式的第二方面中,提供了一種方法,應(yīng)用于數(shù)據(jù)監(jiān)控系統(tǒng),所述系 統(tǒng)包括數(shù)據(jù)發(fā)送模塊、消息隊列模塊、以及數(shù)據(jù)處理模塊,所述方法包括:
[0030] 所述數(shù)據(jù)發(fā)送模塊向所述消息隊列模塊發(fā)送待處理數(shù)據(jù);
[0031] 所述消息隊列模塊接收并存儲所述數(shù)據(jù)發(fā)送模塊發(fā)送的所述待處理數(shù)據(jù),以及, 向所述數(shù)據(jù)處理模塊發(fā)送待處理數(shù)據(jù);
[0032] 所述數(shù)據(jù)處理模塊接收所述消息隊列模塊發(fā)送的待處理數(shù)據(jù),按照預(yù)置的監(jiān)控規(guī) 則對所述待處理數(shù)據(jù)進行處理,輸出處理結(jié)果。
[0033] 本發(fā)明實施例提供的系統(tǒng)和方法可以對實時產(chǎn)生的待處理數(shù)據(jù),通過數(shù)據(jù)發(fā)送模 塊、消息隊列模塊發(fā)送給數(shù)據(jù)處理模塊,由數(shù)據(jù)處理模塊實現(xiàn)數(shù)據(jù)的實時處理,以輸出處理 結(jié)果,實現(xiàn)了對海量數(shù)據(jù)的實時處理,顯著提高了對實時數(shù)據(jù)的處理能力。
【專利附圖】
【附圖說明】
[0034] 通過參考附圖閱讀下文的詳細描述,本發(fā)明示例性實施方式的上述以及其他目 的、特征和優(yōu)點將變得易于理解。在附圖中,以示例性而非限制性的方式示出了本發(fā)明的若 干實施方式,其中:
[0035] 圖1示意性地示出了本發(fā)明實施例的一種應(yīng)用場景;
[0036] 圖2示意性地示出了根據(jù)本發(fā)明實施方式的數(shù)據(jù)監(jiān)控系統(tǒng)的一種實現(xiàn);
[0037] 圖3示意性地示出了根據(jù)本發(fā)明另一實施例的數(shù)據(jù)監(jiān)控系統(tǒng);
[0038] 圖4示意性地示出了根據(jù)本發(fā)明又一實施例的數(shù)據(jù)監(jiān)控方法。
[0039] 在附圖中,相同或?qū)?yīng)的標號表不相同或?qū)?yīng)的部分。
【具體實施方式】
[0040] 下面將參考若干示例性實施方式來描述本發(fā)明的原理和精神。應(yīng)當理解,給出這 些實施方式僅僅是為了使本領(lǐng)域技術(shù)人員能夠更好地理解進而實現(xiàn)本發(fā)明,而并非以任何 方式限制本發(fā)明的范圍。
[0041] 本領(lǐng)域技術(shù)人員知道,本發(fā)明的實施方式可以實現(xiàn)為一種系統(tǒng)、裝置、設(shè)備、方法 或計算機程序產(chǎn)品。因此,本公開可以具體實現(xiàn)為以下形式,即:完全的硬件、完全的軟件 (包括固件、駐留軟件、微代碼等),或者硬件和軟件結(jié)合的形式。
[0042] 根據(jù)本發(fā)明的實施方式,提出了一種數(shù)據(jù)監(jiān)控系統(tǒng)和方法。
[0043] 在本文中,需要理解的是,所涉及的術(shù)語"消息隊列"用于表示在消息的傳輸過程 中保存消息的容器。一般地,"消息"是在兩臺計算機間傳送的數(shù)據(jù)單位。"消息隊列"的主 要作用在于提供路由并保證消息的傳遞。例如,發(fā)送消息時接收者不可用,消息隊列會保留 消息,直到可以成功地傳遞它。
[0044] 此外,附圖中的任何元素數(shù)量均用于示例而非限制,以及任何命名都僅用于區(qū)分, 而不具有任何限制含義。
[0045] 下面參考本發(fā)明的若干代表性實施方式,詳細闡釋本發(fā)明的原理和精神。
[0046] 發(fā)明概沭
[0047] 本發(fā)明人發(fā)現(xiàn),傳統(tǒng)的關(guān)系數(shù)據(jù)庫管理系統(tǒng)在處理有限的存儲數(shù)據(jù)方面是高效 的,但是處理大量的實時數(shù)據(jù)時則效率低下。
[0048] 根據(jù)本發(fā)明實施方式,提供了一種數(shù)據(jù)監(jiān)控系統(tǒng)和方法,當有待處理數(shù)據(jù)時,通過 數(shù)據(jù)發(fā)送模塊,向消息隊列模塊發(fā)送待處理數(shù)據(jù),消息隊列模塊用于接收并存儲待處理數(shù) 據(jù),并向數(shù)據(jù)處理模塊發(fā)送待處理數(shù)據(jù),所述數(shù)據(jù)處理模塊用于當接收到所述消息隊列模 塊發(fā)送的待處理數(shù)據(jù)時,按照預(yù)置的監(jiān)控規(guī)則對所述待處理數(shù)據(jù)進行處理,輸出處理結(jié)果。 本發(fā)明實施例提供的系統(tǒng)和方法可以對實時產(chǎn)生的待處理數(shù)據(jù),通過數(shù)據(jù)發(fā)送模塊、消息 隊列模塊發(fā)送給數(shù)據(jù)處理模塊,由數(shù)據(jù)處理模塊實現(xiàn)數(shù)據(jù)的實時處理,以輸出處理結(jié)果,實 現(xiàn)了對海量數(shù)據(jù)的實時處理,顯著提高了系統(tǒng)對實時數(shù)據(jù)的處理能力。
[0049] 在介紹了本發(fā)明的基本原理之后,下面具體介紹本發(fā)明的各種非限制性實施方 式。
[0050] 應(yīng)用場景總覽
[0051] 首先參考圖1,對本發(fā)明實施例的一種應(yīng)用場景進行說明。其中,如圖1所示,線上 數(shù)據(jù)系統(tǒng)100生成待處理數(shù)據(jù),數(shù)據(jù)監(jiān)控系統(tǒng)200用于實時處理所述線上數(shù)據(jù)系統(tǒng)100生 成的待處理數(shù)據(jù)。例如,線上數(shù)據(jù)系統(tǒng)100是一個web網(wǎng)站服務(wù)器,其可以記錄用戶對這個 web網(wǎng)站服務(wù)器的訪問信息。當然,本領(lǐng)域技術(shù)人員可以理解的是,圖1所示僅為本發(fā)明一 種應(yīng)用場景的示意性說明,并不視為對本發(fā)明應(yīng)用場景的限制。
[0052] 示例件設(shè)各
[0053] 下面結(jié)合圖1的應(yīng)用場景,參考圖2來描述根據(jù)本發(fā)明示例性實施方式的數(shù)據(jù)監(jiān) 控系統(tǒng)。需要注意的是,上述應(yīng)用場景僅是為了便于理解本發(fā)明的精神和原理而示出,本發(fā) 明的實施方式在此方面不受任何限制。相反,本發(fā)明的實施方式可以應(yīng)用于適用的任何場 旦 -5^ 〇
[0054] -種數(shù)據(jù)監(jiān)控系統(tǒng)200,包括:數(shù)據(jù)發(fā)送模塊201、消息隊列模塊202、數(shù)據(jù)處理模 塊203,其中:
[0055] 所述數(shù)據(jù)發(fā)送模塊201,配置用于向所述消息隊列模塊發(fā)送待處理數(shù)據(jù)。
[0056] 所述消息隊列模塊202,配置用于接收并存儲所述數(shù)據(jù)發(fā)送模塊發(fā)送的所述待處 理數(shù)據(jù),以及,向所述數(shù)據(jù)處理模塊發(fā)送待處理數(shù)據(jù)。
[0057] 所述數(shù)據(jù)處理模塊203,配置用于當接收到所述消息隊列模塊發(fā)送的待處理數(shù)據(jù) 時,按照預(yù)置的監(jiān)控規(guī)則對所述待處理數(shù)據(jù)進行處理,輸出處理結(jié)果。
[0058] 其中,數(shù)據(jù)發(fā)送模塊201配置用于當確定存在待處理數(shù)據(jù)時,向消息隊列模塊202 發(fā)送待處理數(shù)據(jù)。優(yōu)選地,所述數(shù)據(jù)發(fā)送模塊配置用于異步地向所述消息隊列模塊發(fā)送待 處理數(shù)據(jù)。為了實現(xiàn)數(shù)據(jù)發(fā)送模塊異步地向消息隊列發(fā)送數(shù)據(jù),在數(shù)據(jù)發(fā)送模塊中可以存 在一個內(nèi)存隊列,用于緩存數(shù)據(jù)發(fā)送模塊中的待處理數(shù)據(jù)。這樣,解耦了生成數(shù)據(jù)的線上數(shù) 據(jù)系統(tǒng)(對應(yīng)待處理數(shù)據(jù)的來源)和消息隊列,數(shù)據(jù)發(fā)送模塊發(fā)送待處理數(shù)據(jù)或者消息不 會影響到線上數(shù)據(jù)系統(tǒng)的數(shù)據(jù)處理。具體實現(xiàn)時,所述內(nèi)存隊列可以采用生產(chǎn)者/消費者 模式處理數(shù)據(jù),以保證線上數(shù)據(jù)系統(tǒng)的穩(wěn)定運行。進一步地,在數(shù)據(jù)發(fā)送模塊中設(shè)置數(shù)據(jù)接 口以及配置單元,所述數(shù)據(jù)接口用于與數(shù)據(jù)源設(shè)備數(shù)據(jù)連接,接收來自數(shù)據(jù)源設(shè)備(生成 待處理數(shù)據(jù)的設(shè)備)的待處理數(shù)據(jù)。所述數(shù)據(jù)接口也用于與消息隊列模塊數(shù)據(jù)連接,發(fā)送 待處理數(shù)據(jù)到消息隊列模塊。因此,可以通過配置單元對相關(guān)參數(shù)進行配置,例如配置接收 參數(shù)、發(fā)送參數(shù)等。根據(jù)該架構(gòu),各種數(shù)據(jù)源設(shè)備可以方便地接入本發(fā)明實施例提供的數(shù)據(jù) 監(jiān)控系統(tǒng),從而實現(xiàn)對待處理數(shù)據(jù)的實時處理。
[0059] 在本發(fā)明具體實現(xiàn)時,使用了消息隊列模塊接收并存儲所述數(shù)據(jù)發(fā)送模塊發(fā)送的 所述待處理數(shù)據(jù)。其中,消息隊列(Message Queue)用于把那些復(fù)雜的數(shù)據(jù)處理業(yè)務(wù)跟在線 主要業(yè)務(wù)分離,提供豐富的特性和可擴展性。在一種可能的實現(xiàn)方式中,可以采用ActiveMQ 消息隊列,其中,消息隊列模塊202為服務(wù)器,在數(shù)據(jù)發(fā)送模塊和數(shù)據(jù)處理模塊兩個模塊上 分別有兩個客戶端,用來發(fā)布和訂閱消息。具體實現(xiàn)時,為了提高系統(tǒng)的可靠性,消息隊列 模塊可以采用集群的方式,例如系統(tǒng)可以包括至少兩個消息隊列模塊。當系統(tǒng)包括至少兩 個消息隊列模塊時,可以創(chuàng)建負載均衡系統(tǒng),用于實現(xiàn)各消息隊列模塊的負載均衡,任何一 個消息隊列模塊發(fā)生故障或者宕機時,不會影響整個消息隊列模塊集群的正常運行。
[0060] 具體實現(xiàn)時,消息隊列模塊配置用于向數(shù)據(jù)處理模塊發(fā)送待處理數(shù)據(jù),所述數(shù)據(jù) 處理模塊,配置用于當接收到所述消息隊列模塊發(fā)送的待處理數(shù)據(jù)時,按照預(yù)置的監(jiān)控規(guī) 則對所述待處理數(shù)據(jù)進行處理,輸出處理結(jié)果。
[0061] 其中,數(shù)據(jù)處理模塊可以主動拉取消息隊列模塊中保存的待處理數(shù)據(jù)。當數(shù)據(jù)處 理模塊處于空閑狀態(tài)時,向所述消息隊列模塊發(fā)送數(shù)據(jù)請求用于請求待處理數(shù)據(jù)。消息隊 列模塊當接收到所述數(shù)據(jù)處理模塊發(fā)送的數(shù)據(jù)請求時,向發(fā)送數(shù)據(jù)請求的數(shù)據(jù)處理模塊發(fā) 送待處理數(shù)據(jù)。也就是說,在這種實現(xiàn)方式中,數(shù)據(jù)處理模塊可以根據(jù)自身的數(shù)據(jù)處理情 況,靈活選擇時機向消息隊列模塊請求發(fā)送待處理數(shù)據(jù)。相對于消息隊列模塊推送數(shù)據(jù)給 數(shù)據(jù)處理模塊的方式,這種方式更加靈活,由于是在數(shù)據(jù)處理模塊空閑時主動拉取數(shù)據(jù),因 此可以保證數(shù)據(jù)處理模塊可以有能力處理數(shù)據(jù),而不會出現(xiàn)數(shù)據(jù)處理模塊繁忙時仍向其推 送數(shù)據(jù)導(dǎo)致的數(shù)據(jù)不能及時處理的情況。
[0062] 當然,本領(lǐng)域技術(shù)人員可以理解的是,在一種可能的實現(xiàn)方式中,消息隊列模塊還 可以接收數(shù)據(jù)處理模塊的數(shù)據(jù)訂閱信息,根據(jù)存儲的數(shù)據(jù)訂閱信息,向數(shù)據(jù)處理模塊發(fā)送 與所述數(shù)據(jù)訂閱信息對應(yīng)的待處理數(shù)據(jù)。當然,消息隊列模塊存儲的數(shù)據(jù)訂閱信息也可以 是系統(tǒng)預(yù)先配置好的。消息隊列模塊可以實時地或者定時地向數(shù)據(jù)處理模塊發(fā)送與數(shù)據(jù)訂 閱信息對應(yīng)的待處理數(shù)據(jù)。
[0063] 具體實現(xiàn)時,數(shù)據(jù)處理模塊配置用于當接收到所述消息隊列模塊發(fā)送的待處理數(shù) 據(jù)時,按照預(yù)置的監(jiān)控規(guī)則對所述待處理數(shù)據(jù)進行處理,輸出處理結(jié)果。其中,所述數(shù)據(jù)處 理模塊可以包括數(shù)據(jù)聚合單元和數(shù)據(jù)收集單元,所述數(shù)據(jù)聚合單元配置用于:當所述預(yù)置 的監(jiān)控規(guī)則包括監(jiān)控對象和監(jiān)控指標時,按照預(yù)置的監(jiān)控規(guī)則將待處理數(shù)據(jù)聚合處理成以 監(jiān)控對象為鍵、監(jiān)控指標為值的鍵值對數(shù)據(jù),以及,對聚合處理后的數(shù)據(jù)進行哈希運算,得 到與其對應(yīng)的數(shù)據(jù)收集單元的訪問地址,將所述聚合處理后的數(shù)據(jù)發(fā)送到相應(yīng)位置;所述 數(shù)據(jù)收集單元配置用于:接收所述數(shù)據(jù)聚合單元聚合處理后的數(shù)據(jù),對具有相同鍵的鍵值 對數(shù)據(jù)進行合并得到合并結(jié)果。下面結(jié)合圖3會舉例描述數(shù)據(jù)聚合單元和數(shù)據(jù)收集單元的 上述工作情形。
[0064] 具體實現(xiàn)時,數(shù)據(jù)處理模塊中的數(shù)據(jù)聚合單元根據(jù)預(yù)置的監(jiān)控對象監(jiān)控指標和監(jiān) 控規(guī)則,對接收的待處理數(shù)據(jù)聚合成以監(jiān)控對象為鍵、監(jiān)控指標為值的鍵值對數(shù)據(jù)。其中, 監(jiān)控對象可以根據(jù)系統(tǒng)需要預(yù)先設(shè)置,監(jiān)控指標可以是監(jiān)控對象的某一屬性或特征。例如 對于監(jiān)控對象為URL為例,監(jiān)控指標可以是URL的訪問次數(shù),URL的最大訪問時長、URL的 平均訪問時長等。監(jiān)控規(guī)則可以是規(guī)定統(tǒng)計預(yù)定時間段內(nèi)的監(jiān)控數(shù)據(jù),也可以是規(guī)定統(tǒng)計 預(yù)定類型的監(jiān)控數(shù)據(jù)等。監(jiān)控規(guī)則還可以包括過濾規(guī)則,例如通過過濾規(guī)則過濾掉明顯是 惡意訪問的網(wǎng)址,減少數(shù)據(jù)統(tǒng)計量以及提高數(shù)據(jù)處理的正確性。例如,當URL包括類似波浪 線--?等特殊字符時,則有可能是惡意網(wǎng)址,則將這類數(shù)據(jù)過濾掉,不進行處理。
[0065] 具體實現(xiàn)時,數(shù)據(jù)收集單元可以對數(shù)據(jù)聚合單元聚合處理后的數(shù)據(jù)進行處理,將 具有相同鍵的鍵值對數(shù)據(jù)進行合并得到合并結(jié)果。數(shù)據(jù)聚合單元和數(shù)據(jù)收集單元的對應(yīng)關(guān) 系可以是一一對應(yīng)的,也可以是其他的對應(yīng)關(guān)系。
[0066] 參見圖3,其示意性地示出了根據(jù)本發(fā)明另一實施例的分布式實時數(shù)據(jù)監(jiān)控系統(tǒng)。 [0067] 在圖3所示的分布式實時數(shù)據(jù)監(jiān)控系統(tǒng)中,包括三個數(shù)據(jù)發(fā)送模塊301,一個消息 隊列模塊302,三個數(shù)據(jù)聚合單元303、兩個數(shù)據(jù)收集單元304 (即數(shù)據(jù)處理模塊包括三個數(shù) 據(jù)聚合單元303和兩個數(shù)據(jù)收集單元304),兩個報警模塊305,以及一個統(tǒng)一配置模塊(圖 中未示出)。當然,本領(lǐng)域的技術(shù)人員應(yīng)當理解,圖3所示的分布式實時數(shù)據(jù)監(jiān)控系統(tǒng)中的 模塊和單元的數(shù)目只是示意性的而不是限制性的。
[0068] 需要注意的是,在這一實施例中,線上系統(tǒng)(或者稱為在線應(yīng)用系統(tǒng)、在線數(shù)據(jù)系 統(tǒng))生成待處理數(shù)據(jù),數(shù)據(jù)發(fā)送模塊可以包括多個節(jié)點,這些多個節(jié)點可以位于同一個線 上系統(tǒng),也可以位于不同的線上系統(tǒng)上。數(shù)據(jù)發(fā)送模塊負責向消息隊列模塊異步發(fā)送數(shù)據(jù)。 為了使得數(shù)據(jù)發(fā)送時不依賴于消息隊列模塊的穩(wěn)定性,因此在本發(fā)明實施例中采用異步的 方式,具體地,在數(shù)據(jù)發(fā)送模塊中增加內(nèi)存隊列采用生產(chǎn)者消費者的模式來保證線上系統(tǒng) 的穩(wěn)定運行。由于數(shù)據(jù)發(fā)送模塊中引入緩存隊列(內(nèi)存隊列)的機制,解耦了在線應(yīng)用系 統(tǒng)和消息隊列模塊的依賴關(guān)系,避免了消息隊列模塊出現(xiàn)問題情況下對在線應(yīng)用系統(tǒng)的影 響。
[0069] 在這一實施例中,消息隊列模塊也可以是分布式的,可以包括多個消息隊列子模 塊,用于存儲來自不同來源或者不同類型的待處理數(shù)據(jù)。從而使得消息隊列模塊可以存儲 更多的數(shù)據(jù),而且配置更為靈活,一個消息隊列子模塊發(fā)生故障,不會影響整個消息隊列模 塊的運行。例如,其中一個消息隊列子模塊宕機時,可以將其剔除;或者,可以新增一個消息 隊列子模塊用于替代發(fā)生故障的消息隊列子模塊,從而保證消息隊列模塊的可靠運行。
[0070] 下面舉例進行說明數(shù)據(jù)聚合單元和數(shù)據(jù)收集單元的工作原理。假設(shè)預(yù)置的監(jiān)控對 象為URL (Uniform Resource Locator,統(tǒng)一資源定位符),監(jiān)控指標為URL的訪問次數(shù)。
[0071] 首先,從消息隊列模塊302中接收到的待處理數(shù)據(jù)分成3份,3個數(shù)據(jù)聚合單元中 的每一個處理相應(yīng)一份待處理數(shù)據(jù)。假設(shè)待處理數(shù)據(jù)中包含URLUURL2以及URL3的數(shù)據(jù), 預(yù)置的監(jiān)控對象為URL1和URL2。假設(shè)在3個數(shù)據(jù)聚合單元中,數(shù)據(jù)聚合單元1處理的待 處理數(shù)據(jù)包含訪問地址是URL1和URL3的數(shù)據(jù),數(shù)據(jù)聚合單元2處理的待處理數(shù)據(jù)包括訪 問地址是URL1和URL2的數(shù)據(jù),數(shù)據(jù)聚合單元3處理的待處理數(shù)據(jù)包括訪問地址是URL2和 URL3的數(shù)據(jù)。這時,數(shù)據(jù)聚合單元1處理這些數(shù)據(jù)后得到key為URL1的鍵值對;數(shù)據(jù)聚合 單元2處理這些數(shù)據(jù)后得到key為URL1和URL2的鍵值對;數(shù)據(jù)聚合單元3處理這些數(shù)據(jù) 后得到key為URL2的鍵值對。以監(jiān)控指標為URL的訪問次數(shù)為例,數(shù)據(jù)聚合單元1進行聚 合處理后產(chǎn)生的結(jié)果就是中間鍵值對,例如(URL1 :900),其中900代表URL的訪問次數(shù)。數(shù) 據(jù)聚合單元2進行聚合處理后產(chǎn)生的結(jié)果就是中間鍵值對(URL1 :400)、(URL2 :600)。數(shù)據(jù) 聚合單元3進行聚合處理后產(chǎn)生的結(jié)果就是中間鍵值對(URL2 :1000)。這時,各數(shù)據(jù)聚合單 元可以將產(chǎn)生的中間鍵值對中鍵相同的值傳遞給同一個數(shù)據(jù)收集單元。具體實現(xiàn)時,各數(shù) 據(jù)聚合單元根據(jù)鍵值對中的鍵key進行哈希運算,從而得到數(shù)據(jù)收集單元的訪問地址(例 如,數(shù)據(jù)聚合單元中的某個特定于一個數(shù)據(jù)收集單元的緩存或內(nèi)存地址),然后把相應(yīng)鍵值 對傳送到相應(yīng)緩存或內(nèi)存地址,從而相應(yīng)數(shù)據(jù)收集單元可以在稍后通過訪問相應(yīng)緩存或內(nèi) 存地址,得到相應(yīng)鍵值對。例如,數(shù)據(jù)聚合單元1可以把key為URL1的鍵值對(URL1 :900) 傳送到特定于數(shù)據(jù)收集單元1的緩存或內(nèi)存地址R1。數(shù)據(jù)聚合單元2可以把key為URL1 的鍵值對(URL1 :400)傳送到特定于數(shù)據(jù)收集單元1的緩存或內(nèi)存地址R1,把key為URL2 的鍵值對(URL2 :600)傳送到特定于數(shù)據(jù)收集單元2的緩存或內(nèi)存地址R2。數(shù)據(jù)聚合單元 3可以把key為URL2的鍵值對(URL2 :1000)傳送到特定于數(shù)據(jù)收集單元2的緩存或內(nèi)存地 址R2。這樣,具有相同鍵key = URL1的鍵值對最終均被傳遞給相同的數(shù)據(jù)收集單元1,由 數(shù)據(jù)收集單元1接收同一個鍵key(URLl)的值(900、400),然后將這組值合并以產(chǎn)生合并結(jié) 果,即合并結(jié)果為(URL1:1300)。也就是說,通過數(shù)據(jù)聚合單元和數(shù)據(jù)收集單元的處理,從 眾多URL中統(tǒng)計出key為URL1的總訪問次數(shù)為1300。類似的,具有相同鍵key = URL2的 鍵值對最終均被傳遞給相同的數(shù)據(jù)收集單元2,由數(shù)據(jù)收集單元2接收同一個鍵key (URL2) 的值(600、1000),然后將這組值合并以產(chǎn)生合并結(jié)果,即合并結(jié)果為(URL2 :1600)。也就是 說,通過數(shù)據(jù)聚合單元和數(shù)據(jù)收集單元的處理,從眾多URL中統(tǒng)計出key為URL2的總訪問 次數(shù)為1600。需要說明的是,以上僅為示例性說明,不視為對本發(fā)明的限制。
[0072] 在本實施例中,所述系統(tǒng)還可以包括統(tǒng)一配置模塊(圖3未示出),配置用于對所 述數(shù)據(jù)處理模塊進行統(tǒng)一配置。由于采用分布式的技術(shù),數(shù)據(jù)聚合單元和數(shù)據(jù)收集單元有 多個,所以如果在每個單元上進行配置文件部署會很不方便。因此在本發(fā)明實施例中利用 統(tǒng)一配置模塊對數(shù)據(jù)聚合單元和數(shù)據(jù)收集單元進行統(tǒng)一管理配置。例如,當數(shù)據(jù)聚合單元 或者數(shù)據(jù)收集單元所在的機器負載較高時,可以立即注冊一個新的機器成為新的數(shù)據(jù)收集 單元或數(shù)據(jù)聚合單元。如果數(shù)據(jù)聚合單元或者數(shù)據(jù)收集單元所在的機器宕機,也可以迅速 將宕掉的機器剔除,不影響整個系統(tǒng)的運行。又例如,由統(tǒng)一配置模塊將來自消息隊列模塊 的數(shù)據(jù)分成與數(shù)據(jù)聚合單元的數(shù)目相對應(yīng)的份數(shù)。又例如,由統(tǒng)一配置模塊確定監(jiān)控規(guī)則、 監(jiān)控對象和監(jiān)控指標、具體的哈希函數(shù)等等。
[0073] 進一步地,本發(fā)明實施例的系統(tǒng)還可以包括:報警模塊,配置用于對經(jīng)過數(shù)據(jù)處理 模塊處理后的處理結(jié)果進行統(tǒng)計,當獲得的統(tǒng)計結(jié)果滿足預(yù)置的報警條件時,輸出報警提 示信息。其中,報警模塊根據(jù)數(shù)據(jù)處理模塊統(tǒng)計后的結(jié)果進行對比分析。報警規(guī)則可配置, 支持多個維度多個層次的配置項,并提供郵件報警、短信報警等機制。
[0074] 在本發(fā)明這一實施例中,數(shù)據(jù)聚合單元和數(shù)據(jù)收集單元采用分布式的設(shè)計,數(shù)據(jù) 聚合單元通過對待監(jiān)控對象的哈希得到數(shù)據(jù)收集單元的訪問地址。這樣系統(tǒng)可以無限水平 擴展,而且不需要整個架構(gòu)做過多調(diào)整。各個數(shù)據(jù)聚合單元和數(shù)據(jù)收集單元并行地工作,實 現(xiàn)了對海量數(shù)據(jù)的實時處理,顯著提高了對實時數(shù)據(jù)的處理能力。并且,由于數(shù)據(jù)聚合單元 和數(shù)據(jù)收集單元采用分布式的設(shè)計,整個系統(tǒng)的抗故障能力大幅度提高,不會出現(xiàn)集中式 設(shè)計中會出現(xiàn)的瓶頸。
[0075] 示例件方法
[0076] 在介紹了本發(fā)明示例性實施方式的設(shè)備之后,接下來,參考圖4對本發(fā)明示例性 實施方式的、用于數(shù)據(jù)監(jiān)控的方法進行介紹。
[0077] -種方法,應(yīng)用于數(shù)據(jù)監(jiān)控系統(tǒng),所述系統(tǒng)包括數(shù)據(jù)發(fā)送模塊、消息隊列模塊、以 及數(shù)據(jù)處理模塊,所述方法包括:
[0078] S401,數(shù)據(jù)發(fā)送模塊向所述消息隊列模塊發(fā)送待處理數(shù)據(jù)。
[0079] S402,所述消息隊列模塊接收并存儲所述數(shù)據(jù)發(fā)送模塊發(fā)送的所述待處理數(shù)據(jù), 以及,向所述數(shù)據(jù)處理模塊發(fā)送待處理數(shù)據(jù)。
[0080] S403,所述數(shù)據(jù)處理模塊接收所述消息隊列模塊發(fā)送的待處理數(shù)據(jù),按照預(yù)置的 監(jiān)控規(guī)則對所述待處理數(shù)據(jù)進行處理,輸出處理結(jié)果。
[0081] 其中,所述數(shù)據(jù)發(fā)送模塊異步地向所述消息隊列模塊發(fā)送待處理數(shù)據(jù)。
[0082] 進一步地,所述方法還包括:
[0083] 當所述數(shù)據(jù)處理模塊處于空閑狀態(tài)時,向所述消息隊列模塊發(fā)送數(shù)據(jù)請求用于請 求待處理數(shù)據(jù);
[0084] 消息隊列模塊向所述數(shù)據(jù)處理模塊發(fā)送待處理數(shù)據(jù)包括:
[0085] 當接收到所述數(shù)據(jù)處理模塊發(fā)送的數(shù)據(jù)請求時,向發(fā)送數(shù)據(jù)請求的數(shù)據(jù)處理模塊 發(fā)送待處理數(shù)據(jù)。
[0086] 其中,所述消息隊列模塊向所述數(shù)據(jù)處理模塊發(fā)送待處理數(shù)據(jù)包括:
[0087] 根據(jù)存儲的數(shù)據(jù)訂閱信息,向數(shù)據(jù)處理模塊發(fā)送與所述數(shù)據(jù)訂閱消息對應(yīng)的待處 理數(shù)據(jù)。
[0088] 其中,當所述數(shù)據(jù)處理模塊包括數(shù)據(jù)聚合單元和數(shù)據(jù)收集單元時,則所述接收所 述消息隊列模塊發(fā)送的待處理數(shù)據(jù),按照預(yù)置的監(jiān)控規(guī)則對所述待處理數(shù)據(jù)進行處理,輸 出處理結(jié)果包括:
[0089] 當所述預(yù)置的監(jiān)控規(guī)則包括監(jiān)控對象和監(jiān)控指標時,所述數(shù)據(jù)聚合單元按照預(yù)置 的監(jiān)控規(guī)則將待處理數(shù)據(jù)聚合處理成以監(jiān)控對象為鍵,監(jiān)控指標為值的鍵值對數(shù)據(jù),以及, 對聚合處理后的數(shù)據(jù)進行哈希運算,得到與其對應(yīng)的數(shù)據(jù)收集單元的訪問地址,將所述聚 合處理后的數(shù)據(jù)發(fā)送到相應(yīng)位置;
[0090] 所述數(shù)據(jù)收集單元接收所述數(shù)據(jù)聚合單元聚合處理后的數(shù)據(jù),對具有相同鍵的鍵 值對數(shù)據(jù)進行合并得到合并結(jié)果。
[0091] 進一步地,所述方法還包括:
[0092] 對經(jīng)過數(shù)據(jù)處理模塊處理后的處理結(jié)果進行統(tǒng)計,當獲得的統(tǒng)計結(jié)果滿足預(yù)置的 報警條件時,輸出報警提示信息。
[0093] 進一步地,在所述數(shù)據(jù)處理模塊包括多個數(shù)據(jù)聚合單元和數(shù)據(jù)收集單元的情況 下,所述方法還包括:
[0094] 對所述數(shù)據(jù)處理模塊進行統(tǒng)一設(shè)置。
[0095] 需要說明的是,以上對設(shè)備實施例進行了詳細地介紹,方法實施例可以參照設(shè)備 實施例實現(xiàn)。
[0096] 應(yīng)當注意,盡管在上文詳細描述中提及了數(shù)據(jù)監(jiān)控系統(tǒng)的若干裝置或子裝置,但 是這種劃分僅僅是示例性的并非強制性的。實際上,根據(jù)本發(fā)明的實施方式,上文描述的兩 個或更多裝置的特征和功能可以在一個裝置中具體化。反之,上文描述的一個裝置的特征 和功能可以進一步劃分為由多個裝置來具體化。
[0097] 此外,盡管在附圖中以特定順序描述了本發(fā)明方法的操作,但是,這并非要求或者 暗示必須按照該特定順序來執(zhí)行這些操作,或是必須執(zhí)行全部所示的操作才能實現(xiàn)期望的 結(jié)果。附加地或備選地,可以省略某些步驟,將多個步驟合并為一個步驟執(zhí)行,和/或?qū)⒁?個步驟分解為多個步驟執(zhí)行。
[〇〇98] 雖然已經(jīng)參考若干【具體實施方式】描述了本發(fā)明的精神和原理,但是應(yīng)該理解,本 發(fā)明并不限于所公開的【具體實施方式】,對各方面的劃分也不意味著這些方面中的特征不能 組合以進行受益,這種劃分僅是為了表述的方便。本發(fā)明旨在涵蓋所附權(quán)利要求的精神和 范圍內(nèi)所包括的各種修改和等同布置。
【權(quán)利要求】
1. 一種系統(tǒng),包括數(shù)據(jù)發(fā)送模塊、消息隊列模塊、數(shù)據(jù)處理模塊,其中: 所述數(shù)據(jù)發(fā)送模塊,配置用于向所述消息隊列模塊發(fā)送待處理數(shù)據(jù); 所述消息隊列模塊,配置用于接收并存儲所述數(shù)據(jù)發(fā)送模塊發(fā)送的所述待處理數(shù)據(jù), 以及,向所述數(shù)據(jù)處理模塊發(fā)送待處理數(shù)據(jù); 所述數(shù)據(jù)處理模塊,配置用于當接收到所述消息隊列模塊發(fā)送的待處理數(shù)據(jù)時,按照 預(yù)置的監(jiān)控規(guī)則對所述待處理數(shù)據(jù)進行處理,輸出處理結(jié)果。
2. 根據(jù)權(quán)利要求1所述的系統(tǒng),其中: 所述數(shù)據(jù)發(fā)送模塊配置用于異步地向所述消息隊列模塊發(fā)送待處理數(shù)據(jù)。
3. 根據(jù)權(quán)利要求1所述的系統(tǒng),其中: 所述數(shù)據(jù)處理模塊配置用于: 當所述數(shù)據(jù)處理模塊處于空閑狀態(tài)時,向所述消息隊列模塊發(fā)送數(shù)據(jù)請求用于請求待 處理數(shù)據(jù); 所述消息隊列模塊配置用于: 當接收到所述數(shù)據(jù)處理模塊發(fā)送的數(shù)據(jù)請求時,向發(fā)送數(shù)據(jù)請求的數(shù)據(jù)處理模塊發(fā)送 待處理數(shù)據(jù)。
4. 根據(jù)權(quán)利要求1所述的系統(tǒng),其中: 所述消息隊列模塊配置用于: 根據(jù)存儲的數(shù)據(jù)訂閱信息,向數(shù)據(jù)處理模塊發(fā)送與所述數(shù)據(jù)訂閱信息對應(yīng)的待處理數(shù) 據(jù)。
5. 根據(jù)權(quán)利要求1所述的系統(tǒng),其中: 所述數(shù)據(jù)處理模塊包括數(shù)據(jù)聚合單元和數(shù)據(jù)收集單元, 所述數(shù)據(jù)聚合單元配置用于:當所述預(yù)置的監(jiān)控規(guī)則包括監(jiān)控對象和監(jiān)控指標時,按 照預(yù)置的監(jiān)控規(guī)則將待處理數(shù)據(jù)聚合處理成以監(jiān)控對象為鍵、監(jiān)控指標為值的鍵值對數(shù) 據(jù),以及,對聚合處理后的數(shù)據(jù)進行哈希運算,得到與其對應(yīng)的數(shù)據(jù)收集單元的訪問地址, 將所述聚合處理后的數(shù)據(jù)發(fā)送到相應(yīng)位置; 所述數(shù)據(jù)收集單元配置用于:接收所述數(shù)據(jù)聚合單元聚合處理后的數(shù)據(jù),對具有相同 鍵的鍵值對數(shù)據(jù)進行合并得到合并結(jié)果。
6. 根據(jù)權(quán)利要求5所述的系統(tǒng),其中,所述數(shù)據(jù)處理模塊包括至少兩個數(shù)據(jù)聚合單元 以及至少兩個數(shù)據(jù)收集單元。
7. 根據(jù)權(quán)利要求6所述的系統(tǒng),還包括: 統(tǒng)一配置模塊,配置用于對所述數(shù)據(jù)處理模塊進行統(tǒng)一配置。
8. 根據(jù)權(quán)利要求1所述的系統(tǒng),其中: 所述系統(tǒng)包括至少兩個數(shù)據(jù)發(fā)送模塊;和/或 所述系統(tǒng)包括至少兩個消息隊列模塊。
9. 根據(jù)權(quán)利要求1所述的系統(tǒng),還包括: 報警模塊,配置用于對經(jīng)過數(shù)據(jù)處理模塊處理后的處理結(jié)果進行統(tǒng)計,當獲得的統(tǒng)計 結(jié)果滿足預(yù)置的報警條件時,輸出報警提示信息。
10. -種方法,應(yīng)用于數(shù)據(jù)監(jiān)控系統(tǒng),所述系統(tǒng)包括數(shù)據(jù)發(fā)送模塊、消息隊列模塊、以及 數(shù)據(jù)處理模塊,所述方法包括: 所述數(shù)據(jù)發(fā)送模塊向所述消息隊列模塊發(fā)送待處理數(shù)據(jù); 所述消息隊列模塊接收并存儲所述數(shù)據(jù)發(fā)送模塊發(fā)送的所述待處理數(shù)據(jù),以及,向所 述數(shù)據(jù)處理模塊發(fā)送待處理數(shù)據(jù); 所述數(shù)據(jù)處理模塊接收所述消息隊列模塊發(fā)送的待處理數(shù)據(jù),按照預(yù)置的監(jiān)控規(guī)則對 所述待處理數(shù)據(jù)進行處理,輸出處理結(jié)果。
【文檔編號】H04L12/26GK104065540SQ201410331540
【公開日】2014年9月24日 申請日期:2014年7月11日 優(yōu)先權(quán)日:2014年7月11日
【發(fā)明者】崔坤, 曹魯, 董海疆, 張紅澤 申請人:網(wǎng)之易信息技術(shù)(北京)有限公司