亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

日志存儲(chǔ)的方法及裝置的制造方法

文檔序號(hào):10687128閱讀:313來(lái)源:國(guó)知局
日志存儲(chǔ)的方法及裝置的制造方法
【專利摘要】本公開(kāi)是關(guān)于一種日志存儲(chǔ)的方法及裝置,該方法包括:在消息列隊(duì)中預(yù)先劃分為多個(gè)分區(qū),在獲取第一日志消息后,根據(jù)預(yù)設(shè)的關(guān)鍵字類型獲取第一日志消息的關(guān)鍵字,并獲取關(guān)鍵字的哈希碼,從而根據(jù)關(guān)鍵字的哈希碼和消息隊(duì)列的分區(qū)信息確定第一日志消息應(yīng)當(dāng)存儲(chǔ)的目標(biāo)分區(qū),并將第一日志消息存儲(chǔ)到消息隊(duì)列中的目標(biāo)分區(qū)中。能夠解決無(wú)法對(duì)日志區(qū)分以及在使用日志時(shí)實(shí)時(shí)性差的問(wèn)題,能夠?qū)崿F(xiàn)日志的分類存儲(chǔ),提高使用日志時(shí)實(shí)時(shí)性。
【專利說(shuō)明】
曰志存儲(chǔ)的方法及裝置
技術(shù)領(lǐng)域
[0001 ]本公開(kāi)涉及日志處理技術(shù)領(lǐng)域,尤其涉及一種日志存儲(chǔ)的方法及日志存儲(chǔ)的裝置。
【背景技術(shù)】
[0002]終端(例如手機(jī)、電腦等)在使用中會(huì)產(chǎn)生大量的日志,我們經(jīng)常需要對(duì)這些日志進(jìn)行收集,進(jìn)而對(duì)這些日志進(jìn)行分析。相關(guān)技術(shù)中日志的收集過(guò)程通常是:終端通常先將日志上傳到服務(wù)器代理,再使用scribe(—種日志收集系統(tǒng))實(shí)時(shí)收集這些數(shù)據(jù),并將收到的日志消息發(fā)送至消息隊(duì)列,然后消息隊(duì)列中的日志消息可以導(dǎo)入到分布式文件系統(tǒng)(Hadoop Distributed File System,簡(jiǎn)稱HDFS),從而完成了日志的收集。

【發(fā)明內(nèi)容】

[0003]為克服相關(guān)技術(shù)中存在的問(wèn)題,本公開(kāi)提供一種日志存儲(chǔ)的方法及裝置。
[0004]根據(jù)本公開(kāi)實(shí)施例的第一方面,提供一種日志存儲(chǔ)的方法,所述包括方法包括:
[0005]獲取第一日志消息;
[0006]根據(jù)預(yù)設(shè)的關(guān)鍵字類型獲取所述第一日志消息的關(guān)鍵字;
[0007]獲取所述關(guān)鍵字的哈希碼;
[0008]根據(jù)所述關(guān)鍵字的哈希碼和消息隊(duì)列的分區(qū)信息確定所述第一日志消息應(yīng)當(dāng)存儲(chǔ)的目標(biāo)分區(qū);所述消息隊(duì)列包括多個(gè)分區(qū),所述目標(biāo)分區(qū)為所述多個(gè)分區(qū)中的任一分區(qū);
[0009]將所述第一日志消息存儲(chǔ)到所述消息隊(duì)列中的所述目標(biāo)分區(qū)中。
[0010]可選的,所述根據(jù)所述關(guān)鍵字的哈希碼和消息隊(duì)列的分區(qū)信息確定所述第一日志消息應(yīng)當(dāng)存儲(chǔ)的目標(biāo)分區(qū)包括:
[0011]根據(jù)所述關(guān)鍵字的哈希碼和消息隊(duì)列的每個(gè)分區(qū)的標(biāo)識(shí)號(hào)確定所述第一日志消息應(yīng)當(dāng)存儲(chǔ)的目標(biāo)分區(qū);或者,
[0012]根據(jù)所述關(guān)鍵字的哈希碼和消息隊(duì)列的分區(qū)總數(shù)確定所述第一日志消息應(yīng)當(dāng)存儲(chǔ)的目標(biāo)分區(qū)。
[0013]可選的,所述根據(jù)所述關(guān)鍵字的哈希碼和消息隊(duì)列的每個(gè)分區(qū)的標(biāo)識(shí)號(hào)確定所述第一日志消息應(yīng)當(dāng)存儲(chǔ)的目標(biāo)分區(qū),包括:
[0014]獲取所述關(guān)鍵字的哈希碼的絕對(duì)值;
[0015]將所述關(guān)鍵字的哈希碼的絕對(duì)值分別與消息隊(duì)列的每個(gè)分區(qū)的標(biāo)識(shí)號(hào)進(jìn)行模運(yùn)算,得到多個(gè)模值,其中每個(gè)模值對(duì)應(yīng)一個(gè)分區(qū);
[0016]根據(jù)每個(gè)分區(qū)對(duì)應(yīng)的模值確定所述目標(biāo)分區(qū)。
[0017]可選的,根據(jù)所述關(guān)鍵字的哈希碼和消息隊(duì)列的分區(qū)總數(shù)確定所述第一日志消息應(yīng)當(dāng)存儲(chǔ)的目標(biāo)分區(qū),包括:
[0018]獲取所述關(guān)鍵字的哈希碼的絕對(duì)值;
[0019]將所述關(guān)鍵字的哈希碼的絕對(duì)值與所述分區(qū)總數(shù)進(jìn)行模運(yùn)算;
[0020]獲取將進(jìn)行模運(yùn)算得到的模值除以預(yù)設(shè)值所得的余數(shù);
[0021 ]根據(jù)所述余數(shù)確定所述目標(biāo)分區(qū)。
[0022]可選的,所述目標(biāo)分區(qū)中包括至少一個(gè)子分區(qū),所述將所述第一日志消息存儲(chǔ)到所述消息隊(duì)列中的所述目標(biāo)分區(qū)中,包括:
[0023]根據(jù)預(yù)設(shè)的子關(guān)鍵字類型獲取所述第一日志消息的子關(guān)鍵字;
[0024]獲取所述子關(guān)鍵字的哈希碼;
[0025]根據(jù)所述子關(guān)鍵字的哈希碼和所述目標(biāo)分區(qū)的子分區(qū)信息確定所述第一日志消息應(yīng)當(dāng)存儲(chǔ)的目標(biāo)子分區(qū);所述目標(biāo)子分區(qū)為所述至少一個(gè)子分區(qū)中的任一子分區(qū);
[0026]將所述第一日志消息存儲(chǔ)到所述目標(biāo)子分區(qū)。
[0027]可選的,所述方法還包括:
[0028]獲取待使用的目標(biāo)日志消息所在分區(qū)的分區(qū)標(biāo)識(shí)號(hào);
[0029]根據(jù)所述分區(qū)標(biāo)識(shí)號(hào)從所述目標(biāo)日志消息所在分區(qū)獲取所述目標(biāo)日志消息。
[0030]可選的,所述根據(jù)所述分區(qū)標(biāo)識(shí)號(hào)從所述目標(biāo)日志消息所在分區(qū)中獲取所述目標(biāo)日志消息包括:
[0031 ]獲取所述目標(biāo)日志消息所在的子分區(qū)的子分區(qū)標(biāo)識(shí)號(hào);所述目標(biāo)日志消息所在的子分區(qū)是所述目標(biāo)日志消息所在分區(qū)中的子分區(qū);
[0032]根據(jù)所述子分區(qū)標(biāo)識(shí)號(hào)從所述目標(biāo)日志消息所在的子分區(qū)獲取所述目標(biāo)日志消息。
[0033]可選的,所述方法還包括:
[0034]獲取待使用的目標(biāo)日志消息的關(guān)鍵字;
[0035]根據(jù)所述目標(biāo)日志消息的關(guān)鍵字確定所述目標(biāo)日志消息所在的分區(qū);
[0036]從所述目標(biāo)日志消息所在的分區(qū)獲取所述目標(biāo)日志消息。
[0037]可選的,所述從所述目標(biāo)日志消息所在的分區(qū)獲取所述目標(biāo)日志消息包括:
[0038]獲取所述目標(biāo)日志消息的子關(guān)鍵字;
[0039]根據(jù)所述目標(biāo)日志消息的子關(guān)鍵字確定所述目標(biāo)日志消息所在的子分區(qū);所述目標(biāo)日志消息所在的子分區(qū)是所述目標(biāo)日志消息所在分區(qū)中的子分區(qū);
[0040]從所述目標(biāo)日志消息所在的子分區(qū)獲取所述目標(biāo)日志消息。
[0041 ]可選的,所述方法還包括:
[0042]當(dāng)滿足預(yù)設(shè)的備份條件時(shí),將消息隊(duì)列的每個(gè)分區(qū)中存儲(chǔ)的日志消息進(jìn)行備份。
[0043]根據(jù)本公開(kāi)實(shí)施例的第二方面,提供一種日志存儲(chǔ)的裝置,所述裝置包括:
[0044]消息獲取模塊,被配置為獲取第一日志消息;
[0045]關(guān)鍵字識(shí)別模塊,被配置為根據(jù)預(yù)設(shè)的關(guān)鍵字類型獲取所述第一日志消息的關(guān)鍵字;
[0046]計(jì)算模塊,被配置為獲取所述關(guān)鍵字的哈希碼;
[0047]分區(qū)選擇模塊,被配置為根據(jù)所述關(guān)鍵字的哈希碼和消息隊(duì)列的分區(qū)信息確定所述第一日志消息應(yīng)當(dāng)存儲(chǔ)的目標(biāo)分區(qū);所述消息隊(duì)列包括多個(gè)分區(qū),所述目標(biāo)分區(qū)為所述多個(gè)分區(qū)中的任一分區(qū);
[0048]存儲(chǔ)模塊,被配置為將所述第一日志消息存儲(chǔ)到所述消息隊(duì)列中的所述目標(biāo)分區(qū)中。
[0049]可選的,所述分區(qū)選擇模塊被配置為:
[0050]根據(jù)所述關(guān)鍵字的哈希碼和消息隊(duì)列的每個(gè)分區(qū)的標(biāo)識(shí)號(hào)確定所述第一日志消息應(yīng)當(dāng)存儲(chǔ)的目標(biāo)分區(qū);或者,
[0051]根據(jù)所述關(guān)鍵字的哈希碼和消息隊(duì)列的分區(qū)總數(shù)確定所述第一日志消息應(yīng)當(dāng)存儲(chǔ)的目標(biāo)分區(qū)。
[0052]可選的,所述分區(qū)選擇模塊包括:
[0053]第一計(jì)算子模塊,被配置為獲取所述關(guān)鍵字的哈希碼的絕對(duì)值;
[0054]第二計(jì)算子模塊,被配置為將所述關(guān)鍵字的哈希碼的絕對(duì)值分別與消息隊(duì)列的每個(gè)分區(qū)的標(biāo)識(shí)號(hào)進(jìn)行模運(yùn)算,得到多個(gè)模值,其中每個(gè)模值對(duì)應(yīng)一個(gè)分區(qū);
[0055]確定子模塊,被配置為根據(jù)每個(gè)分區(qū)對(duì)應(yīng)的模值確定所述目標(biāo)分區(qū)。
[0056]可選的,所述分區(qū)選擇包括:
[0057]第三計(jì)算子模塊,被配置為獲取所述關(guān)鍵字的哈希碼的絕對(duì)值;
[0058]第四計(jì)算子模塊,被配置為將所述關(guān)鍵字的哈希碼的絕對(duì)值與所述分區(qū)總數(shù)進(jìn)行模運(yùn)算;
[0059]獲取子模塊,被配置為獲取將進(jìn)行模運(yùn)算得到的模值除以預(yù)設(shè)值所得的余數(shù);
[0060]確定子模塊,被配置為根據(jù)所述余數(shù)確定所述目標(biāo)分區(qū)。
[0061 ]可選的,所述存儲(chǔ)模塊包括:
[0062]關(guān)鍵字獲取子模塊,被配置為根據(jù)預(yù)設(shè)的子關(guān)鍵字類型獲取所述第一日志消息的子關(guān)鍵字;
[0063]哈希計(jì)算子模塊,被配置為獲取所述子關(guān)鍵字的哈希碼;
[0064]確定子模塊,被配置為根據(jù)所述子關(guān)鍵字的哈希碼和所述目標(biāo)分區(qū)的子分區(qū)信息確定所述第一日志消息應(yīng)當(dāng)存儲(chǔ)的目標(biāo)子分區(qū);所述目標(biāo)子分區(qū)為所述至少一個(gè)子分區(qū)中的任一子分區(qū);
[0065]存儲(chǔ)子模塊,被配置為將所述第一日志消息存儲(chǔ)到所述目標(biāo)子分區(qū)。
[0066]可選的,所述裝置還包括:
[0067]標(biāo)識(shí)獲取模塊,被配置為獲取待使用的目標(biāo)日志消息所在分區(qū)的分區(qū)標(biāo)識(shí)號(hào);
[0068]第一消息提取模塊,被配置為根據(jù)所述分區(qū)標(biāo)識(shí)號(hào)從所述目標(biāo)日志消息所在分區(qū)獲取所述目標(biāo)日志消息。
[0069]可選的,所述第一消息提取模塊包括:
[0070]標(biāo)識(shí)獲取子模塊,被配置為獲取所述目標(biāo)日志消息所在的子分區(qū)的子分區(qū)標(biāo)識(shí)號(hào);所述目標(biāo)日志消息所在的子分區(qū)是所述目標(biāo)日志消息所在分區(qū)中的子分區(qū);
[0071 ]消息獲取子模塊,被配置為根據(jù)所述子分區(qū)標(biāo)識(shí)號(hào)從所述目標(biāo)日志消息所在的子分區(qū)獲取所述目標(biāo)日志消息。
[0072]可選的,所述裝置還包括:
[0073]關(guān)鍵字獲取模塊,被配置為獲取待使用的目標(biāo)日志消息的關(guān)鍵字;
[0074]分區(qū)確定模塊,被配置為根據(jù)所述目標(biāo)日志消息的關(guān)鍵字確定所述目標(biāo)日志消息所在的分區(qū);
[0075]第二消息提取模塊,被配置為從所述目標(biāo)日志消息所在的分區(qū)獲取所述目標(biāo)日志消息。
[0076]可選的,所述第二消息提取模塊包括:
[0077]關(guān)鍵字獲取子模塊,被配置為獲取所述目標(biāo)日志消息的子關(guān)鍵字;
[0078]子分區(qū)確定子模塊,根據(jù)所述目標(biāo)日志消息的子關(guān)鍵字確定所述目標(biāo)日志消息所在的子分區(qū);所述目標(biāo)日志消息所在的子分區(qū)是所述目標(biāo)日志消息所在分區(qū)中的子分區(qū);
[0079]消息獲取子模塊,被配置為從所述目標(biāo)日志消息所在的子分區(qū)獲取所述目標(biāo)日志消息。
[0080]可選的,所述裝置還包括:
[0081]備份模塊,被配置為當(dāng)滿足預(yù)設(shè)的備份條件時(shí),將消息隊(duì)列的每個(gè)分區(qū)中存儲(chǔ)的日志消息進(jìn)行備份。
[0082]根據(jù)本公開(kāi)實(shí)施例的第三方面,提供一種日志存儲(chǔ)的裝置,所述裝置包括:
[0083]處理器;
[0084]用于存儲(chǔ)處理器可執(zhí)行指令的存儲(chǔ)器;
[0085]其中,所述處理器被配置為:
[0086]獲取第一日志消息;
[0087]根據(jù)預(yù)設(shè)的關(guān)鍵字類型獲取所述第一日志消息的關(guān)鍵字;
[0088]獲取所述關(guān)鍵字的哈希碼;
[0089]根據(jù)所述關(guān)鍵字的哈希碼和消息隊(duì)列的分區(qū)信息確定所述第一日志消息應(yīng)當(dāng)存儲(chǔ)的目標(biāo)分區(qū);所述消息隊(duì)列包括多個(gè)分區(qū),所述目標(biāo)分區(qū)為所述多個(gè)分區(qū)中的任一分區(qū);
[0090]將所述第一日志消息存儲(chǔ)到所述消息隊(duì)列中的所述目標(biāo)分區(qū)中。
[0091]根據(jù)本公開(kāi)實(shí)施例的第四方面,提供一種非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),當(dāng)所述存儲(chǔ)介質(zhì)中的指令由移動(dòng)終端的處理器執(zhí)行時(shí),使得移動(dòng)終端能夠執(zhí)行一種日志存儲(chǔ)的方法,所述方法包括:獲取第一日志消息;根據(jù)預(yù)設(shè)的關(guān)鍵字類型獲取所述第一日志消息的關(guān)鍵字;獲取所述關(guān)鍵字的哈希碼;根據(jù)所述關(guān)鍵字的哈希碼和消息隊(duì)列的分區(qū)信息確定所述第一日志消息應(yīng)當(dāng)存儲(chǔ)的目標(biāo)分區(qū);所述消息隊(duì)列包括多個(gè)分區(qū),所述目標(biāo)分區(qū)為所述多個(gè)分區(qū)中的任一分區(qū);將所述第一日志消息存儲(chǔ)到所述消息隊(duì)列中的所述目標(biāo)分區(qū)中。
[0092]本公開(kāi)的實(shí)施例提供的技術(shù)方案可以包括以下有益效果:
[0093]本公開(kāi)提供的日志存儲(chǔ)的方法及裝置,通過(guò)將消息列隊(duì)預(yù)先劃分為多個(gè)分區(qū),在獲取第一日志消息后,根據(jù)預(yù)設(shè)的關(guān)鍵字類型獲取所述第一日志消息的關(guān)鍵字,并獲取所述關(guān)鍵字的哈希碼,從而根據(jù)所述關(guān)鍵字的哈希碼和消息隊(duì)列的分區(qū)信息確定所述第一日志消息應(yīng)當(dāng)存儲(chǔ)的目標(biāo)分區(qū),所述目標(biāo)分區(qū)為所述多個(gè)分區(qū)中的任一分區(qū),最終將所述第一日志消息存儲(chǔ)到所述消息隊(duì)列中的所述目標(biāo)分區(qū)中。由于相關(guān)技術(shù)中的日志收集過(guò)程中數(shù)據(jù)是集中在一起進(jìn)行收集的,無(wú)法對(duì)日志的區(qū)分,從而也導(dǎo)致在使用日志時(shí),需要對(duì)分布式文件系統(tǒng)中存儲(chǔ)的大量日志進(jìn)行分析才能找到需要的日志,實(shí)時(shí)性差。本公開(kāi)利用關(guān)鍵字將日志存儲(chǔ)在不同的分區(qū)中,能夠解決相關(guān)技術(shù)中無(wú)法對(duì)日志區(qū)分以及在使用日志時(shí)實(shí)時(shí)性差的問(wèn)題,能夠?qū)崿F(xiàn)日志的分類存儲(chǔ),提高使用日志時(shí)實(shí)時(shí)性。
[0094]應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性和解釋性的,并不能限制本公開(kāi)。
【附圖說(shuō)明】
[0095]此處的附圖被并入說(shuō)明書(shū)中并構(gòu)成本說(shuō)明書(shū)的一部分,示出了符合本公開(kāi)的實(shí)施例,并與說(shuō)明書(shū)一起用于解釋本公開(kāi)的原理。
[0096]圖1是根據(jù)一示例性實(shí)施例示出的一種日志存儲(chǔ)的方法的流程圖;
[0097]圖2是根據(jù)一示例性實(shí)施例示出的一種日志存儲(chǔ)的方法的流程圖;
[0098]圖3是根據(jù)一示例性實(shí)施例示出的另一種日志存儲(chǔ)的方法的流程圖;
[0099]圖4是根據(jù)一示例性實(shí)施例示出的一種日志存儲(chǔ)的裝置框圖;
[0100]圖5是圖4所示實(shí)施例示出的一種分區(qū)選擇模塊框圖;
[0101 ]圖6是圖4所示實(shí)施例示出的另一種分區(qū)選擇模塊框圖;
[0102]圖7是圖4所示實(shí)施例示出的一種存儲(chǔ)模塊框圖;
[0103]圖8是根據(jù)一示例性實(shí)施例示出的另一種日志存儲(chǔ)的裝置框圖;
[0104]圖9是圖8所示實(shí)施例示出的第一消息提取模塊框圖;
[0105]圖10是根據(jù)一示例性實(shí)施例示出的又一種日志存儲(chǔ)的裝置框圖;
[0106]圖11是圖10所示實(shí)施例示出的第二消息提取模塊框圖;
[0107]圖12是根據(jù)一示例性實(shí)施例示出的又一種日志存儲(chǔ)的裝置框圖;
[0108]圖13是根據(jù)一示例性實(shí)施例示出的一種日志存儲(chǔ)的裝置框圖。
【具體實(shí)施方式】
[0109]這里將詳細(xì)地對(duì)示例性實(shí)施例進(jìn)行說(shuō)明,其示例表示在附圖中。下面的描述涉及附圖時(shí),除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實(shí)施例中所描述的實(shí)施方式并不代表與本公開(kāi)相一致的所有實(shí)施方式。相反,它們僅是與如所附權(quán)利要求書(shū)中所詳述的、本公開(kāi)的一些方面相一致的裝置和方法的例子。
[0110]在介紹本公開(kāi)提供的日志存儲(chǔ)的方法之前,首先對(duì)本公開(kāi)所涉及應(yīng)用場(chǎng)景進(jìn)行介紹,該實(shí)施環(huán)境可以包括:終端,以及服務(wù)器,終端可以將自身產(chǎn)生的日志(此時(shí)是用戶數(shù)據(jù)的形式)上傳的服務(wù)代理,而后由位于服務(wù)器的日志收集系統(tǒng)scribe進(jìn)行收集并將收到的日志消息存儲(chǔ)到消息隊(duì)列中,其中消息隊(duì)列可以預(yù)先劃分成多個(gè)分區(qū),并且可以在日志收集系統(tǒng)scribe自定義消息攔截器,該攔截器可以預(yù)先定義一個(gè)或者多個(gè)關(guān)鍵字種類,從而可以根據(jù)收到的消息的關(guān)鍵字來(lái)確定將該日志消息存儲(chǔ)到哪個(gè)分區(qū)中。其中,終端例如可以是智能手機(jī)、功能平板電腦、智能電視、智能手表、PDA(Personal Digital Assistant,個(gè)人數(shù)字助理)、便攜計(jì)算機(jī)等移動(dòng)終端,也可以是臺(tái)式計(jì)算機(jī)等固定終端。服務(wù)器可以是一臺(tái)服務(wù)器,或者由若干臺(tái)服務(wù)器組成的服務(wù)器集群,或者可以是一個(gè)云計(jì)算服務(wù)中心。
[0111]圖1是根據(jù)一示例性實(shí)施例示出的一種日志存儲(chǔ)的方法的流程圖,該方法可以應(yīng)用于服務(wù)器,如圖1所示,該方法包括以下步驟。
[0112]步驟101,獲取第一日志消息。
[0113]其中,該第一日志消息可以是某一終端,例如手機(jī)、電腦等上傳的日志,獲取該第一日志消息可以由服務(wù)器中的日志收集系統(tǒng)scribe來(lái)執(zhí)行。
[0114]步驟102,根據(jù)預(yù)設(shè)的關(guān)鍵字類型獲取第一日志消息的關(guān)鍵字。即可以理解為獲取所述第一日志消息中的屬于該預(yù)設(shè)的關(guān)鍵字類型的關(guān)鍵字。
[0115]步驟103,獲取關(guān)鍵字的哈希碼(hashcode)。
[0116]步驟104,根據(jù)關(guān)鍵字的哈希碼和消息隊(duì)列的分區(qū)信息確定第一日志消息應(yīng)當(dāng)存儲(chǔ)的目標(biāo)分區(qū);消息隊(duì)列包括多個(gè)分區(qū),目標(biāo)分區(qū)為該多個(gè)分區(qū)中的任一分區(qū)。
[0117]其中,可以預(yù)先在消息隊(duì)列中設(shè)置多個(gè)分區(qū),示例的,可以在消息隊(duì)列的用于存儲(chǔ)日志的Topic(主題)設(shè)置多個(gè)分區(qū),每個(gè)分區(qū)分配一定的存儲(chǔ)空間,用于存儲(chǔ)接收到的日志消息。另外,分區(qū)信息可以是消息隊(duì)列的每個(gè)分區(qū)的標(biāo)識(shí)號(hào)(比如ID),或者可以是分區(qū)的總數(shù)。
[0118]步驟105,將第一日志消息存儲(chǔ)到消息隊(duì)列中的目標(biāo)分區(qū)中。
[0119]綜上,本公開(kāi)提供的日志存儲(chǔ)的方法,通過(guò)將消息列隊(duì)預(yù)先劃分為多個(gè)分區(qū),在獲取第一日志消息后,根據(jù)預(yù)設(shè)的關(guān)鍵字類型獲取所述第一日志消息的關(guān)鍵字,并獲取所述關(guān)鍵字的哈希碼,從而根據(jù)所述關(guān)鍵字的哈希碼和消息隊(duì)列的分區(qū)信息確定所述第一日志消息應(yīng)當(dāng)存儲(chǔ)的目標(biāo)分區(qū),所述目標(biāo)分區(qū)為所述多個(gè)分區(qū)中的任一分區(qū),最終將所述第一日志消息存儲(chǔ)到所述消息隊(duì)列中的所述目標(biāo)分區(qū)中。由于相關(guān)技術(shù)中的日志收集過(guò)程中數(shù)據(jù)是集中在一起進(jìn)行收集的,無(wú)法對(duì)日志的區(qū)分,從而也導(dǎo)致在使用日志時(shí),需要對(duì)分布式文件系統(tǒng)中存儲(chǔ)的大量日志進(jìn)行分析才能找到需要的日志,實(shí)時(shí)性差。本公開(kāi)利用關(guān)鍵字將日志存儲(chǔ)在不同的分區(qū)中,能夠解決相關(guān)技術(shù)中無(wú)法對(duì)日志區(qū)分以及在使用日志時(shí)實(shí)時(shí)性差的問(wèn)題,能夠?qū)崿F(xiàn)日志的分類存儲(chǔ),提高使用日志時(shí)實(shí)時(shí)性。
[0120]圖2是根據(jù)一示例性實(shí)施例示出的一種日志存儲(chǔ)的方法的流程圖,該方法可以應(yīng)用于服務(wù)器,在該服務(wù)器中,可以利用日志收集系統(tǒng)scribe設(shè)置攔截器,用于在將接收到的日志消息存儲(chǔ)到消息隊(duì)列之前先對(duì)收到的日志消息進(jìn)行分析,以確定日志消息應(yīng)當(dāng)存儲(chǔ)的分區(qū),其中分區(qū)是指消息隊(duì)列中的分區(qū),該消息隊(duì)列中包括預(yù)先設(shè)置的多個(gè)分區(qū),如圖2所示,該方法包括以下步驟。
[0121]步驟201,獲取第一日志消息。
[0122]其中,該第一日志消息可以是某一終端,例如手機(jī)、電腦等上傳的日志,獲取該第一日志消息可以有服務(wù)器中的日志收集系統(tǒng)scribe來(lái)執(zhí)行。
[0123]步驟202,根據(jù)預(yù)設(shè)的關(guān)鍵字類型獲取第一日志消息的關(guān)鍵字。
[0124]即可以理解為獲取所述第一日志消息中的屬于該預(yù)設(shè)的關(guān)鍵字類型的關(guān)鍵字。例如,假設(shè)預(yù)設(shè)的關(guān)鍵字類型為“用戶ID”,并假設(shè)第一日志消息中包括“用戶ID: 123456,用戶性別:00(示例地,以00表示女性,01表示男性),用戶年齡:21,其他信息:XXXXXXX”,則根據(jù)指定的關(guān)鍵字類型“用戶ID”獲取的關(guān)鍵字應(yīng)當(dāng)為“123456”。
[0125]步驟203,獲取關(guān)鍵字的哈希碼。
[0126]步驟204,根據(jù)關(guān)鍵字的哈希碼和消息隊(duì)列的分區(qū)信息進(jìn)行模運(yùn)算,根據(jù)模運(yùn)算的結(jié)果確定第一日志消息應(yīng)當(dāng)存儲(chǔ)的目標(biāo)分區(qū)。
[0127]其中,分區(qū)信息可以是消息隊(duì)列中每個(gè)分區(qū)的標(biāo)識(shí)號(hào),或者是分區(qū)總數(shù),在設(shè)置好消息隊(duì)列中的多個(gè)分區(qū)后,可以給每個(gè)分區(qū)分配唯一的標(biāo)識(shí)號(hào)(例如ID),示例地假設(shè)消息隊(duì)列中有5個(gè)分區(qū),則可以記為分區(qū)I?分區(qū)5,則確定第一日志消息應(yīng)當(dāng)存儲(chǔ)的目標(biāo)分區(qū)可以通過(guò)以下兩種方式:
[0128]第一種,可以根據(jù)所述關(guān)鍵字的哈希碼和消息隊(duì)列的每個(gè)分區(qū)的標(biāo)識(shí)號(hào)確定所述第一日志消息應(yīng)當(dāng)存儲(chǔ)的目標(biāo)分區(qū)。示例地,可以包括:
[0129]首先,獲取所述關(guān)鍵字的哈希碼的絕對(duì)值;其次,將所述關(guān)鍵字的哈希碼的絕對(duì)值分別與消息隊(duì)列的每個(gè)分區(qū)的標(biāo)識(shí)號(hào)進(jìn)行模運(yùn)算,得到多個(gè)模值,其中每個(gè)模值對(duì)應(yīng)一個(gè)分區(qū);再次,可以利用預(yù)設(shè)的分配策略,根據(jù)每個(gè)分區(qū)對(duì)應(yīng)的模值確定第一日志消息應(yīng)當(dāng)存儲(chǔ)的目標(biāo)分區(qū)。
[0130]第二種,可以根據(jù)所述關(guān)鍵字的哈希碼和消息隊(duì)列的分區(qū)總數(shù)(或者稱為分區(qū)標(biāo)識(shí)號(hào)的最大值)確定所述第一日志消息應(yīng)當(dāng)存儲(chǔ)的目標(biāo)分區(qū)。示例地,可以包括:
[0131]首先,獲取所述關(guān)鍵字的哈希碼的絕對(duì)值;其次,將所述關(guān)鍵字的哈希碼的絕對(duì)值與所述分區(qū)總數(shù)進(jìn)行模運(yùn)算;再次,獲取將進(jìn)行模運(yùn)算得到的模值除以預(yù)設(shè)值所得的余數(shù);最后,根據(jù)所述余數(shù)確定第一日志消息應(yīng)當(dāng)存儲(chǔ)的目標(biāo)分區(qū),例如根據(jù)余數(shù)與分區(qū)標(biāo)識(shí)號(hào)的對(duì)應(yīng)關(guān)系來(lái)確定,比如余數(shù)為I則可以確定目標(biāo)分區(qū)為分區(qū)I,該對(duì)應(yīng)關(guān)系可以是預(yù)先設(shè)置的。
[0132]另外,值得一提的是,采用分區(qū)標(biāo)識(shí)號(hào)進(jìn)行模運(yùn)算,可以在分區(qū)被誤刪后不影響后續(xù)的日志收集過(guò)程。
[0133]步驟205,將第一日志消息存儲(chǔ)到消息隊(duì)列中的目標(biāo)分區(qū)中。
[0134]進(jìn)一步,如果在設(shè)置攔截器時(shí),設(shè)置的關(guān)鍵字類型可以有多個(gè),則可以理解為從多個(gè)維度去確定日志消息應(yīng)當(dāng)存儲(chǔ)的分區(qū)其中這里設(shè)置的多個(gè)關(guān)鍵字類型可以是有關(guān)聯(lián)關(guān)系的,例如在設(shè)置了某一關(guān)鍵字類型后,還可以進(jìn)一步設(shè)置子關(guān)鍵字類型,則相應(yīng)的可以在消息隊(duì)列中建立子分區(qū)。比如預(yù)設(shè)的關(guān)鍵字類型為“用戶ID”,子關(guān)鍵字類型為“用戶性別”,假設(shè)分區(qū)為分區(qū)I至分區(qū)5,分別用于存儲(chǔ)I類用戶、2類用戶、3類用戶、4類用戶和5類用戶的日志消息,并且在每個(gè)分區(qū)中建立有兩個(gè)子分區(qū),分別對(duì)應(yīng)用戶性別為男性和女性。示例地,圖3是根據(jù)一示例性實(shí)施例示出的另一種日志存儲(chǔ)的方法的流程圖,如圖3所示,在預(yù)設(shè)了子關(guān)鍵字類型的情況下,該方法可以用以下步驟206?步驟209替換步驟205。
[0135]步驟206,根據(jù)預(yù)設(shè)的子關(guān)鍵字類型獲取第一日志消息的子關(guān)鍵字。
[0136]其中,與獲取關(guān)鍵字的方法相同,以步驟202中的第一日志消息“用戶ID:123456,用戶性別:00(示例地,以00表示女性,01表示男性),用戶年齡:21,其他信息:XXXXXXX”為例,假設(shè)子關(guān)鍵字類型為“用戶性別”,則這里獲取的第一日志消息的子關(guān)鍵字為“00”。其中步驟206也可以在執(zhí)行步驟201時(shí)一起執(zhí)行。
[0137]步驟207,獲取子關(guān)鍵字的哈希碼。
[0138]步驟208,根據(jù)子關(guān)鍵字的哈希碼和目標(biāo)分區(qū)的子分區(qū)信息確定第一日志消息應(yīng)當(dāng)存儲(chǔ)的目標(biāo)子分區(qū)。
[0139]其中,子分區(qū)信息可以為目標(biāo)分區(qū)中的每個(gè)子分區(qū)的標(biāo)識(shí)號(hào),或者是子分區(qū)總數(shù),因此確定第一日志消息應(yīng)當(dāng)存儲(chǔ)的目標(biāo)子分區(qū)可以也通過(guò)兩種方式:
[0140]第一種,可以根據(jù)所述子關(guān)鍵字的哈希碼和目標(biāo)分區(qū)中的每個(gè)子分區(qū)的標(biāo)識(shí)號(hào)確定所述第一日志消息應(yīng)當(dāng)存儲(chǔ)的目標(biāo)子分區(qū)。示例地,可以包括:
[0141]首先,獲取所述子關(guān)鍵字的哈希碼的絕對(duì)值;其次,將所述子關(guān)鍵字的哈希碼的絕對(duì)值分別與每個(gè)子分區(qū)的標(biāo)識(shí)號(hào)進(jìn)行模運(yùn)算,得到多個(gè)模值,其中每個(gè)模值對(duì)應(yīng)一個(gè)子分區(qū);再次,可以利用預(yù)設(shè)的分配策略,根據(jù)每個(gè)子分區(qū)對(duì)應(yīng)的模值確定第一日志消息應(yīng)當(dāng)存儲(chǔ)的目標(biāo)子分區(qū)。
[0142]第二種,可以根據(jù)所述子關(guān)鍵字的哈希碼和消息隊(duì)列的子分區(qū)總數(shù)確定所述第一日志消息應(yīng)當(dāng)存儲(chǔ)的目標(biāo)子分區(qū)。示例地,可以包括:
[0143]首先,獲取所述子關(guān)鍵字的哈希碼的絕對(duì)值;其次,將所述子關(guān)鍵字的哈希碼的絕對(duì)值與所述子分區(qū)總數(shù)進(jìn)行模運(yùn)算;再次,獲取將進(jìn)行模運(yùn)算得到的模值除以預(yù)設(shè)值所得的余數(shù);最后,根據(jù)所述余數(shù)確定第一日志消息應(yīng)當(dāng)存儲(chǔ)的子目標(biāo)分區(qū),例如根據(jù)余數(shù)與子分區(qū)標(biāo)識(shí)號(hào)的對(duì)應(yīng)關(guān)系來(lái)確定。
[0144]例如,假設(shè)已經(jīng)確定的目標(biāo)分區(qū)為分區(qū)I,并且獲得的余數(shù)為1,則可以確定目標(biāo)分區(qū)為子分區(qū)1-1,該對(duì)應(yīng)關(guān)系可以是預(yù)先設(shè)置的。根據(jù)前文所述,分區(qū)對(duì)應(yīng)的是I類用戶,并且假設(shè)子分區(qū)1-1對(duì)應(yīng)的是用戶性別為女性的子分區(qū),則通過(guò)上述方法,可以將所有的I類用戶中的女性用戶的相關(guān)日志消息都存儲(chǔ)在分區(qū)I中的子分區(qū)1-1中,可以將具有相似關(guān)鍵字的日志消息存儲(chǔ)在同一個(gè)分區(qū),甚至子分區(qū)中。
[0145]步驟209,將第一日志消息存儲(chǔ)到目標(biāo)子分區(qū)。
[0146]另外每個(gè)子分區(qū)還可以有更進(jìn)一步的子分區(qū),其實(shí)現(xiàn)方法與步驟206?209相同,不再贅述。可以見(jiàn)通過(guò)多關(guān)鍵字和子分區(qū)能夠進(jìn)一步的將分區(qū)細(xì)化,實(shí)現(xiàn)在日志存儲(chǔ)中更精細(xì)的進(jìn)行分區(qū)存儲(chǔ)。因此,上述方法實(shí)現(xiàn)了日志的分區(qū)存儲(chǔ),有利于日志的區(qū)分,可以將具有相似關(guān)鍵字的日志消息存儲(chǔ)在同一個(gè)分區(qū),甚至子分區(qū)中,從而能夠?qū)崿F(xiàn)在使用存儲(chǔ)的日志消息時(shí)快速定位需要的目標(biāo)日志消息。
[0147]示例地,在使用存儲(chǔ)的日志時(shí),可以先獲取待使用的目標(biāo)日志消息所在分區(qū)的分區(qū)標(biāo)識(shí)號(hào),再根據(jù)分區(qū)標(biāo)識(shí)號(hào)從目標(biāo)日志消息所在分區(qū)獲取目標(biāo)日志消息,例如獲取的目標(biāo)日志消息為“分區(qū)I”,則可以從分區(qū)I中去獲取目標(biāo)日志消息。如果第一日志消息是存儲(chǔ)在子分區(qū)中,則除了獲取目標(biāo)日志消息所在分區(qū)的分區(qū)標(biāo)識(shí)號(hào)之外,還需要獲取目標(biāo)日志消息所在的子分區(qū)的子分區(qū)標(biāo)識(shí)號(hào)(所述目標(biāo)日志消息所在的子分區(qū)是所述目標(biāo)日志消息所在分區(qū)中的子分區(qū)),從而在根據(jù)分區(qū)標(biāo)識(shí)號(hào)確定目標(biāo)日志消息所在分區(qū)后,根據(jù)子分區(qū)標(biāo)識(shí)號(hào)從目標(biāo)日志消息所在的子分區(qū)獲取目標(biāo)日志消息,例如,目標(biāo)日志消息位于分區(qū)I中的子分區(qū)1-2,則可以獲取“分區(qū)I”以及“子分區(qū)1-2”,從而可以從分區(qū)I的子分區(qū)1-2中獲取目標(biāo)日志消息。
[0148]或者,在使用存儲(chǔ)的日志時(shí),可以先獲取待使用的目標(biāo)日志消息的關(guān)鍵字,而后根據(jù)目標(biāo)日志消息的關(guān)鍵字確定目標(biāo)日志消息所在的分區(qū),再?gòu)哪繕?biāo)日志消息所在的分區(qū)獲取目標(biāo)日志消息。如果第一日志消息是存儲(chǔ)在子分區(qū)中,則除了獲取目標(biāo)日志消息的關(guān)鍵字之外,還需要獲取目標(biāo)日志消息的子關(guān)鍵字,從而在根據(jù)目標(biāo)日志消息的關(guān)鍵字確定目標(biāo)日志消息所在的分區(qū)后,根據(jù)目標(biāo)日志消息的子關(guān)鍵字確定目標(biāo)日志消息所在的子分區(qū)(所述目標(biāo)日志消息所在的子分區(qū)是所述目標(biāo)日志消息所在分區(qū)中的子分區(qū)),并從目標(biāo)日志消息所在的子分區(qū)獲取目標(biāo)日志消息。其中,根據(jù)目標(biāo)日志消息的關(guān)鍵字確定目標(biāo)日志消息所在的分區(qū)的方法可以參考步驟204,根據(jù)目標(biāo)日志消息的子關(guān)鍵字確定目標(biāo)日志消息所在的子分區(qū)的方法可以參考步驟208。
[0149]另外,還可以在滿足預(yù)設(shè)的備份條件時(shí),將消息隊(duì)列的每個(gè)分區(qū)中存儲(chǔ)的日志消息進(jìn)行備份。其中,該備份條件可以為預(yù)先設(shè)置的備份時(shí)間點(diǎn),當(dāng)?shù)竭_(dá)備份時(shí)間點(diǎn)時(shí)將消息隊(duì)列的每個(gè)分區(qū)中存儲(chǔ)的日志消息進(jìn)行備份,或者接收到備份指令時(shí)進(jìn)行備份等等。從而如果某一分區(qū)出現(xiàn)問(wèn)題,例如被誤刪除,則可以新建一個(gè)相同ID的分區(qū),并利用備份恢復(fù)即可。其中,對(duì)一個(gè)每個(gè)分區(qū)中存儲(chǔ)的日志消息進(jìn)行備份,包括對(duì)每個(gè)分區(qū)中的每個(gè)子分區(qū)中存儲(chǔ)的日志消息進(jìn)行備份。
[0150]綜上,本公開(kāi)提供的日志存儲(chǔ)的方法,通過(guò)將消息列隊(duì)預(yù)先劃分為多個(gè)分區(qū),在獲取第一日志消息后,根據(jù)預(yù)設(shè)的關(guān)鍵字類型獲取所述第一日志消息的關(guān)鍵字,并獲取所述關(guān)鍵字的哈希碼,從而根據(jù)所述關(guān)鍵字的哈希碼和消息隊(duì)列的分區(qū)信息確定所述第一日志消息應(yīng)當(dāng)存儲(chǔ)的目標(biāo)分區(qū),所述目標(biāo)分區(qū)為所述多個(gè)分區(qū)中的任一分區(qū),最終將所述第一日志消息存儲(chǔ)到所述消息隊(duì)列中的所述目標(biāo)分區(qū)中。由于相關(guān)技術(shù)中的日志收集過(guò)程中數(shù)據(jù)是集中在一起進(jìn)行收集的,無(wú)法對(duì)日志的區(qū)分,從而也導(dǎo)致在使用日志時(shí),需要對(duì)分布式文件系統(tǒng)中存儲(chǔ)的大量日志進(jìn)行分析才能找到需要的日志,實(shí)時(shí)性差。本公開(kāi)利用關(guān)鍵字將日志存儲(chǔ)在不同的分區(qū)中,能夠解決相關(guān)技術(shù)中無(wú)法對(duì)日志區(qū)分以及在使用日志時(shí)實(shí)時(shí)性差的問(wèn)題,能夠?qū)崿F(xiàn)日志的分類存儲(chǔ),提高使用日志時(shí)實(shí)時(shí)性。
[0151]圖4是根據(jù)一示例性實(shí)施例示出的一種日志存儲(chǔ)的裝置框圖。該裝置400可以用于執(zhí)行圖1?圖3任一所述的方法,參照?qǐng)D4,該裝置包括消息獲取模塊401,關(guān)鍵字識(shí)別模塊402,計(jì)算模塊403,分區(qū)選擇模塊404和存儲(chǔ)模塊405。
[0152]消息獲取模塊401,被配置為獲取第一日志消息;
[0153]關(guān)鍵字識(shí)別模塊402,被配置為根據(jù)預(yù)設(shè)的關(guān)鍵字類型獲取所述第一日志消息的關(guān)鍵字;
[0154]計(jì)算模塊403,被配置為獲取所述關(guān)鍵字的哈希碼;
[0155]分區(qū)選擇模塊404,被配置為根據(jù)所述關(guān)鍵字的哈希碼和消息隊(duì)列的分區(qū)信息確定所述第一日志消息應(yīng)當(dāng)存儲(chǔ)的目標(biāo)分區(qū);所述消息隊(duì)列包括多個(gè)分區(qū),所述目標(biāo)分區(qū)為所述多個(gè)分區(qū)中的任一分區(qū);
[0156]存儲(chǔ)模塊405,被配置為將所述第一日志消息存儲(chǔ)到所述消息隊(duì)列中的所述目標(biāo)分區(qū)中。
[0157]可選的,所述分區(qū)選擇模塊被配置為:
[0158]根據(jù)所述關(guān)鍵字的哈希碼和消息隊(duì)列的每個(gè)分區(qū)的標(biāo)識(shí)號(hào)確定所述第一日志消息應(yīng)當(dāng)存儲(chǔ)的目標(biāo)分區(qū);或者,
[0159]根據(jù)所述關(guān)鍵字的哈希碼和消息隊(duì)列的分區(qū)總數(shù)確定所述第一日志消息應(yīng)當(dāng)存儲(chǔ)的目標(biāo)分區(qū)。
[0160]可選的,圖5是圖4所示實(shí)施例示出的一種分區(qū)選擇模塊框圖,如圖5所示,所述分區(qū)選擇模塊404包括:
[0161]第一計(jì)算子模塊4041,被配置為獲取所述關(guān)鍵字的哈希碼的絕對(duì)值;
[0162]第二計(jì)算子模塊4042,被配置為將所述關(guān)鍵字的哈希碼的絕對(duì)值分別與消息隊(duì)列的每個(gè)分區(qū)的標(biāo)識(shí)號(hào)進(jìn)行模運(yùn)算,得到多個(gè)模值,其中每個(gè)模值對(duì)應(yīng)一個(gè)分區(qū);
[0163]確定子模塊4043,被配置為根據(jù)每個(gè)分區(qū)對(duì)應(yīng)的模值確定所述目標(biāo)分區(qū)。
[0164]可選的,圖6是圖4所示實(shí)施例示出的另一種分區(qū)選擇模塊框圖,如圖6所示,所述分區(qū)選擇模塊404包括:
[0165]第三計(jì)算子模塊4044,被配置為獲取所述關(guān)鍵字的哈希碼的絕對(duì)值;
[0166]第四計(jì)算子模塊4045,被配置為將所述關(guān)鍵字的哈希碼的絕對(duì)值與所述分區(qū)總數(shù)進(jìn)行模運(yùn)算;
[0167]獲取子模塊4046,被配置為獲取將進(jìn)行模運(yùn)算得到的模值除以預(yù)設(shè)值所得的余數(shù);
[0168]確定子模塊4047,被配置為根據(jù)所述余數(shù)確定所述目標(biāo)分區(qū)。
[0169]可選的,圖7是圖4所示實(shí)施例示出的一種存儲(chǔ)模塊框圖,如圖7所示,所述存儲(chǔ)模塊405包括:
[0170]關(guān)鍵字獲取子模塊4051,被配置為根據(jù)預(yù)設(shè)的子關(guān)鍵字類型獲取所述第一日志消息的子關(guān)鍵字;
[0171]哈希計(jì)算子模塊4052,被配置為獲取所述子關(guān)鍵字的哈希碼;
[0172]確定子模塊4053,被配置為根據(jù)所述子關(guān)鍵字的哈希碼和所述目標(biāo)分區(qū)的子分區(qū)信息確定所述第一日志消息應(yīng)當(dāng)存儲(chǔ)的目標(biāo)子分區(qū);所述目標(biāo)子分區(qū)為所述至少一個(gè)子分區(qū)中的任一子分區(qū);
[0173]存儲(chǔ)子模塊4054,被配置為將所述第一日志消息存儲(chǔ)到所述目標(biāo)子分區(qū)。
[0174]可選的,圖8是根據(jù)一示例性實(shí)施例示出的另一種日志存儲(chǔ)的裝置框圖,如圖8所示,所述裝置400還包括:
[0175]標(biāo)識(shí)獲取模塊406,被配置為獲取待使用的目標(biāo)日志消息所在分區(qū)的分區(qū)標(biāo)識(shí)號(hào);
[0176]第一消息提取模塊407,被配置為根據(jù)所述分區(qū)標(biāo)識(shí)號(hào)從所述目標(biāo)日志消息所在分區(qū)獲取所述目標(biāo)日志消息。
[0177]可選的,圖9是圖8所示實(shí)施例示出的第一消息提取模塊框圖,如圖9所示,所述第一消息提取模塊407包括:
[0178]標(biāo)識(shí)獲取子模塊4071,被配置為獲取所述目標(biāo)日志消息所在的子分區(qū)的子分區(qū)標(biāo)識(shí)號(hào);所述目標(biāo)日志消息所在的子分區(qū)是所述目標(biāo)日志消息所在分區(qū)中的子分區(qū);
[0179]消息獲取子模塊4072,被配置為根據(jù)所述子分區(qū)標(biāo)識(shí)號(hào)從所述目標(biāo)日志消息所在的子分區(qū)獲取所述目標(biāo)日志消息。
[0180]可選的,圖10是根據(jù)一示例性實(shí)施例示出的又一種日志存儲(chǔ)的裝置框圖,如圖10所示,所述裝置400還包括:
[0181]關(guān)鍵字獲取模塊408,被配置為獲取待使用的目標(biāo)日志消息的關(guān)鍵字;
[0182]分區(qū)確定模塊409,被配置為根據(jù)所述目標(biāo)日志消息的關(guān)鍵字確定所述目標(biāo)日志消息所在的分區(qū);
[0183]第二消息提取模塊410,被配置為從所述目標(biāo)日志消息所在的分區(qū)獲取所述目標(biāo)曰志消息。
[0184]可選的,圖11是圖10所示實(shí)施例示出的第二消息提取模塊框圖,如圖9所示,所述第二消息提取模塊410包括:
[0185]關(guān)鍵字獲取子模塊4101,被配置為獲取所述目標(biāo)日志消息的子關(guān)鍵字;
[0186]子分區(qū)確定子模塊4102,根據(jù)所述目標(biāo)日志消息的子關(guān)鍵字確定所述目標(biāo)日志消息所在的子分區(qū);所述目標(biāo)日志消息所在的子分區(qū)是所述目標(biāo)日志消息所在分區(qū)中的子分區(qū);
[0187]消息獲取子模塊4103,被配置為從所述目標(biāo)日志消息所在的子分區(qū)獲取所述目標(biāo)曰志消息。
[0188]可選的,圖12是根據(jù)一示例性實(shí)施例示出的又一種日志存儲(chǔ)的裝置框圖,如圖12所示,所述裝置還包括:
[0189]備份模塊411,被配置為當(dāng)滿足預(yù)設(shè)的備份條件時(shí),將消息隊(duì)列的每個(gè)分區(qū)中存儲(chǔ)的日志消息進(jìn)行備份。
[0190]綜上,本公開(kāi)提供的日志存儲(chǔ)的方法,通過(guò)將消息列隊(duì)預(yù)先劃分為多個(gè)分區(qū),在獲取第一日志消息后,根據(jù)預(yù)設(shè)的關(guān)鍵字類型獲取所述第一日志消息的關(guān)鍵字,并獲取所述關(guān)鍵字的哈希碼,從而根據(jù)所述關(guān)鍵字的哈希碼和消息隊(duì)列的分區(qū)信息確定所述第一日志消息應(yīng)當(dāng)存儲(chǔ)的目標(biāo)分區(qū),所述目標(biāo)分區(qū)為所述多個(gè)分區(qū)中的任一分區(qū),最終將所述第一日志消息存儲(chǔ)到所述消息隊(duì)列中的所述目標(biāo)分區(qū)中。由于相關(guān)技術(shù)中的日志收集過(guò)程中數(shù)據(jù)是集中在一起進(jìn)行收集的,無(wú)法對(duì)日志的區(qū)分,從而也導(dǎo)致在使用日志時(shí),需要對(duì)分布式文件系統(tǒng)中存儲(chǔ)的大量日志進(jìn)行分析才能找到需要的日志,實(shí)時(shí)性差。本公開(kāi)利用關(guān)鍵字將日志存儲(chǔ)在不同的分區(qū)中,能夠解決相關(guān)技術(shù)中無(wú)法對(duì)日志區(qū)分以及在使用日志時(shí)實(shí)時(shí)性差的問(wèn)題,能夠?qū)崿F(xiàn)日志的分類存儲(chǔ),提高使用日志時(shí)實(shí)時(shí)性。
[0191]關(guān)于上述實(shí)施例中的裝置,其中各個(gè)模塊執(zhí)行操作的具體方式已經(jīng)在有關(guān)該方法的實(shí)施例中進(jìn)行了詳細(xì)描述,此處將不做詳細(xì)闡述說(shuō)明。
[0192]圖13是根據(jù)一示例性實(shí)施例示出的一種日志存儲(chǔ)的裝置1300的框圖。例如,裝置1300可以被提供為一服務(wù)器。參照?qǐng)D13,裝置1300包括處理組件1322,其進(jìn)一步包括一個(gè)或多個(gè)處理器,以及由存儲(chǔ)器1332所代表的存儲(chǔ)器資源,用于存儲(chǔ)可由處理組件1322的執(zhí)行的指令,例如應(yīng)用程序。存儲(chǔ)器1332中存儲(chǔ)的應(yīng)用程序可以包括一個(gè)或一個(gè)以上的每一個(gè)對(duì)應(yīng)于一組指令的模塊。此外,處理組件1322被配置為執(zhí)行指令,以執(zhí)行上述日志存儲(chǔ)的方法。
[0193]裝置1300還可以包括一個(gè)電源組件1326被配置為執(zhí)行裝置1300的電源管理,一個(gè)有線或無(wú)線網(wǎng)絡(luò)接口 1350被配置為將裝置1300連接到網(wǎng)絡(luò),和一個(gè)輸入輸出(I/O)接口1358。裝置1300可以操作基于存儲(chǔ)在存儲(chǔ)器1332的操作系統(tǒng),例如Windows ServerTM,MacOS XTM,UnixTM,LinuxTM,F(xiàn)reeBSDTM或類似。
[0194]在示例性實(shí)施例中,還提供了一種包括指令的非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),例如包括指令的存儲(chǔ)器1332,上述指令可由裝置1300的處理組件1322執(zhí)行以完成上述日志存儲(chǔ)的方法。例如,所述非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是ROM、隨機(jī)存取存儲(chǔ)器(RAM)、CD-R0M、磁帶、軟盤(pán)和光數(shù)據(jù)存儲(chǔ)設(shè)備等。
[0195]本領(lǐng)域技術(shù)人員在考慮說(shuō)明書(shū)及實(shí)踐本公開(kāi)后,將容易想到本公開(kāi)的其它實(shí)施方案。本申請(qǐng)旨在涵蓋本公開(kāi)的任何變型、用途或者適應(yīng)性變化,這些變型、用途或者適應(yīng)性變化遵循本公開(kāi)的一般性原理并包括本公開(kāi)未公開(kāi)的本技術(shù)領(lǐng)域中的公知常識(shí)或慣用技術(shù)手段。說(shuō)明書(shū)和實(shí)施例僅被視為示例性的,本公開(kāi)的真正范圍和精神由下面的權(quán)利要求指出。
[0196]應(yīng)當(dāng)理解的是,本公開(kāi)并不局限于上面已經(jīng)描述并在附圖中示出的精確結(jié)構(gòu),并且可以在不脫離其范圍進(jìn)行各種修改和改變。本公開(kāi)的范圍僅由所附的權(quán)利要求來(lái)限制。
【主權(quán)項(xiàng)】
1.一種日志存儲(chǔ)的方法,其特征在于,所述方法包括: 獲取第一日志消息; 根據(jù)預(yù)設(shè)的關(guān)鍵字類型獲取所述第一日志消息的關(guān)鍵字; 獲取所述關(guān)鍵字的哈希碼; 根據(jù)所述關(guān)鍵字的哈希碼和消息隊(duì)列的分區(qū)信息確定所述第一日志消息應(yīng)當(dāng)存儲(chǔ)的目標(biāo)分區(qū);所述消息隊(duì)列包括多個(gè)分區(qū),所述目標(biāo)分區(qū)為所述多個(gè)分區(qū)中的任一分區(qū); 將所述第一日志消息存儲(chǔ)到所述消息隊(duì)列中的所述目標(biāo)分區(qū)中。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述關(guān)鍵字的哈希碼和消息隊(duì)列的分區(qū)信息確定所述第一日志消息應(yīng)當(dāng)存儲(chǔ)的目標(biāo)分區(qū)包括: 根據(jù)所述關(guān)鍵字的哈希碼和消息隊(duì)列的每個(gè)分區(qū)的標(biāo)識(shí)號(hào)確定所述第一日志消息應(yīng)當(dāng)存儲(chǔ)的目標(biāo)分區(qū);或者, 根據(jù)所述關(guān)鍵字的哈希碼和消息隊(duì)列的分區(qū)總數(shù)確定所述第一日志消息應(yīng)當(dāng)存儲(chǔ)的目標(biāo)分區(qū)。3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述根據(jù)所述關(guān)鍵字的哈希碼和消息隊(duì)列的每個(gè)分區(qū)的標(biāo)識(shí)號(hào)確定所述第一日志消息應(yīng)當(dāng)存儲(chǔ)的目標(biāo)分區(qū),包括: 獲取所述關(guān)鍵字的哈希碼的絕對(duì)值; 將所述關(guān)鍵字的哈希碼的絕對(duì)值分別與消息隊(duì)列的每個(gè)分區(qū)的標(biāo)識(shí)號(hào)進(jìn)行模運(yùn)算,得到多個(gè)模值,其中每個(gè)模值對(duì)應(yīng)一個(gè)分區(qū); 根據(jù)每個(gè)分區(qū)對(duì)應(yīng)的模值確定所述目標(biāo)分區(qū)。4.根據(jù)權(quán)利要求2所述的方法,其特征在于,根據(jù)所述關(guān)鍵字的哈希碼和消息隊(duì)列的分區(qū)總數(shù)確定所述第一日志消息應(yīng)當(dāng)存儲(chǔ)的目標(biāo)分區(qū),包括: 獲取所述關(guān)鍵字的哈希碼的絕對(duì)值; 將所述關(guān)鍵字的哈希碼的絕對(duì)值與所述分區(qū)總數(shù)進(jìn)行模運(yùn)算; 獲取將進(jìn)行模運(yùn)算得到的模值除以預(yù)設(shè)值所得的余數(shù); 根據(jù)所述余數(shù)確定所述目標(biāo)分區(qū)。5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述目標(biāo)分區(qū)中包括至少一個(gè)子分區(qū),所述將所述第一日志消息存儲(chǔ)到所述消息隊(duì)列中的所述目標(biāo)分區(qū)中,包括: 根據(jù)預(yù)設(shè)的子關(guān)鍵字類型獲取所述第一日志消息的子關(guān)鍵字; 獲取所述子關(guān)鍵字的哈希碼; 根據(jù)所述子關(guān)鍵字的哈希碼和所述目標(biāo)分區(qū)的子分區(qū)信息確定所述第一日志消息應(yīng)當(dāng)存儲(chǔ)的目標(biāo)子分區(qū);所述目標(biāo)子分區(qū)為所述至少一個(gè)子分區(qū)中的任一子分區(qū); 將所述第一日志消息存儲(chǔ)到所述目標(biāo)子分區(qū)。6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 獲取待使用的目標(biāo)日志消息所在分區(qū)的分區(qū)標(biāo)識(shí)號(hào); 根據(jù)所述分區(qū)標(biāo)識(shí)號(hào)從所述目標(biāo)日志消息所在分區(qū)獲取所述目標(biāo)日志消息。7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述根據(jù)所述分區(qū)標(biāo)識(shí)號(hào)從所述目標(biāo)日志消息所在分區(qū)中獲取所述目標(biāo)日志消息包括: 獲取所述目標(biāo)日志消息所在的子分區(qū)的子分區(qū)標(biāo)識(shí)號(hào);所述目標(biāo)日志消息所在的子分區(qū)是所述目標(biāo)日志消息所在分區(qū)中的子分區(qū); 根據(jù)所述子分區(qū)標(biāo)識(shí)號(hào)從所述目標(biāo)日志消息所在的子分區(qū)獲取所述目標(biāo)日志消息。8.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 獲取待使用的目標(biāo)日志消息的關(guān)鍵字; 根據(jù)所述目標(biāo)日志消息的關(guān)鍵字確定所述目標(biāo)日志消息所在的分區(qū); 從所述目標(biāo)日志消息所在的分區(qū)獲取所述目標(biāo)日志消息。9.根據(jù)權(quán)利要求8所述的方法,其特征在于,所述從所述目標(biāo)日志消息所在的分區(qū)獲取所述目標(biāo)日志消息包括: 獲取所述目標(biāo)日志消息的子關(guān)鍵字; 根據(jù)所述目標(biāo)日志消息的子關(guān)鍵字確定所述目標(biāo)日志消息所在的子分區(qū);所述目標(biāo)日志消息所在的子分區(qū)是所述目標(biāo)日志消息所在分區(qū)中的子分區(qū); 從所述目標(biāo)日志消息所在的子分區(qū)獲取所述目標(biāo)日志消息。10.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 當(dāng)滿足預(yù)設(shè)的備份條件時(shí),將消息隊(duì)列的每個(gè)分區(qū)中存儲(chǔ)的日志消息進(jìn)行備份。11.一種日志存儲(chǔ)的裝置,其特征在于,所述裝置包括: 消息獲取模塊,被配置為獲取第一日志消息; 關(guān)鍵字識(shí)別模塊,被配置為根據(jù)預(yù)設(shè)的關(guān)鍵字類型獲取所述第一日志消息的關(guān)鍵字; 計(jì)算模塊,被配置為獲取所述關(guān)鍵字的哈希碼; 分區(qū)選擇模塊,被配置為根據(jù)所述關(guān)鍵字的哈希碼和消息隊(duì)列的分區(qū)信息確定所述第一日志消息應(yīng)當(dāng)存儲(chǔ)的目標(biāo)分區(qū);所述消息隊(duì)列包括多個(gè)分區(qū),所述目標(biāo)分區(qū)為所述多個(gè)分區(qū)中的任一分區(qū); 存儲(chǔ)模塊,被配置為將所述第一日志消息存儲(chǔ)到所述消息隊(duì)列中的所述目標(biāo)分區(qū)中。12.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述分區(qū)選擇模塊被配置為: 根據(jù)所述關(guān)鍵字的哈希碼和消息隊(duì)列的每個(gè)分區(qū)的標(biāo)識(shí)號(hào)確定所述第一日志消息應(yīng)當(dāng)存儲(chǔ)的目標(biāo)分區(qū);或者, 根據(jù)所述關(guān)鍵字的哈希碼和消息隊(duì)列的分區(qū)總數(shù)確定所述第一日志消息應(yīng)當(dāng)存儲(chǔ)的目標(biāo)分區(qū)。13.根據(jù)權(quán)利要求12所述的裝置,其特征在于,所述分區(qū)選擇模塊包括: 第一計(jì)算子模塊,被配置為獲取所述關(guān)鍵字的哈希碼的絕對(duì)值; 第二計(jì)算子模塊,被配置為將所述關(guān)鍵字的哈希碼的絕對(duì)值分別與消息隊(duì)列的每個(gè)分區(qū)的標(biāo)識(shí)號(hào)進(jìn)行模運(yùn)算,得到多個(gè)模值,其中每個(gè)模值對(duì)應(yīng)一個(gè)分區(qū); 確定子模塊,被配置為根據(jù)每個(gè)分區(qū)對(duì)應(yīng)的模值確定所述目標(biāo)分區(qū)。14.根據(jù)權(quán)利要求12所述的裝置,其特征在于,所述分區(qū)選擇模塊包括: 第三計(jì)算子模塊,被配置為獲取所述關(guān)鍵字的哈希碼的絕對(duì)值; 第四計(jì)算子模塊,被配置為將所述關(guān)鍵字的哈希碼的絕對(duì)值與所述分區(qū)總數(shù)進(jìn)行模運(yùn)算; 獲取子模塊,被配置為獲取將進(jìn)行模運(yùn)算得到的模值除以預(yù)設(shè)值所得的余數(shù); 確定子模塊,被配置為根據(jù)所述余數(shù)確定所述目標(biāo)分區(qū)。15.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述存儲(chǔ)模塊包括: 關(guān)鍵字獲取子模塊,被配置為根據(jù)預(yù)設(shè)的子關(guān)鍵字類型獲取所述第一日志消息的子關(guān)鍵字; 哈希計(jì)算子模塊,被配置為獲取所述子關(guān)鍵字的哈希碼; 確定子模塊,被配置為根據(jù)所述子關(guān)鍵字的哈希碼和所述目標(biāo)分區(qū)的子分區(qū)信息確定所述第一日志消息應(yīng)當(dāng)存儲(chǔ)的目標(biāo)子分區(qū);所述目標(biāo)子分區(qū)為所述至少一個(gè)子分區(qū)中的任一子分區(qū); 存儲(chǔ)子模塊,被配置為將所述第一日志消息存儲(chǔ)到所述目標(biāo)子分區(qū)。16.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述裝置還包括: 標(biāo)識(shí)獲取模塊,被配置為獲取待使用的目標(biāo)日志消息所在分區(qū)的分區(qū)標(biāo)識(shí)號(hào); 第一消息提取模塊,被配置為根據(jù)所述分區(qū)標(biāo)識(shí)號(hào)從所述目標(biāo)日志消息所在分區(qū)獲取所述目標(biāo)日志消息。17.根據(jù)權(quán)利要求16所述的裝置,其特征在于,所述第一消息提取模塊包括: 標(biāo)識(shí)獲取子模塊,被配置為獲取所述目標(biāo)日志消息所在的子分區(qū)的子分區(qū)標(biāo)識(shí)號(hào);所述目標(biāo)日志消息所在的子分區(qū)是所述目標(biāo)日志消息所在分區(qū)中的子分區(qū); 消息獲取子模塊,被配置為根據(jù)所述子分區(qū)標(biāo)識(shí)號(hào)從所述目標(biāo)日志消息所在的子分區(qū)獲取所述目標(biāo)日志消息。18.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述裝置還包括: 關(guān)鍵字獲取模塊,被配置為獲取待使用的目標(biāo)日志消息的關(guān)鍵字; 分區(qū)確定模塊,被配置為根據(jù)所述目標(biāo)日志消息的關(guān)鍵字確定所述目標(biāo)日志消息所在的分區(qū); 第二消息提取模塊,被配置為從所述目標(biāo)日志消息所在的分區(qū)獲取所述目標(biāo)日志消息。19.根據(jù)權(quán)利要求18所述的裝置,其特征在于,所述第二消息提取模塊包括: 關(guān)鍵字獲取子模塊,被配置為獲取所述目標(biāo)日志消息的子關(guān)鍵字; 子分區(qū)確定子模塊,根據(jù)所述目標(biāo)日志消息的子關(guān)鍵字確定所述目標(biāo)日志消息所在的子分區(qū);所述目標(biāo)日志消息所在的子分區(qū)是所述目標(biāo)日志消息所在分區(qū)中的子分區(qū); 消息獲取子模塊,被配置為從所述目標(biāo)日志消息所在的子分區(qū)獲取所述目標(biāo)日志消息。20.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述裝置還包括: 備份模塊,被配置為當(dāng)滿足預(yù)設(shè)的備份條件時(shí),將消息隊(duì)列的每個(gè)分區(qū)中存儲(chǔ)的日志消息進(jìn)行備份。21.—種日志存儲(chǔ)的裝置,其特征在于,所述裝置包括: 處理器; 用于存儲(chǔ)處理器可執(zhí)行指令的存儲(chǔ)器; 其中,所述處理器被配置為: 獲取第一日志消息; 根據(jù)預(yù)設(shè)的關(guān)鍵字類型獲取所述第一日志消息的關(guān)鍵字; 獲取所述關(guān)鍵字的哈希碼; 根據(jù)所述關(guān)鍵字的哈希碼和消息隊(duì)列的分區(qū)信息確定所述第一日志消息應(yīng)當(dāng)存儲(chǔ)的目標(biāo)分區(qū);所述消息隊(duì)列包括多個(gè)分區(qū),所述目標(biāo)分區(qū)為所述多個(gè)分區(qū)中的任一分區(qū);將所述第一日志消息存儲(chǔ)到所述消息隊(duì)列中的所述目標(biāo)分區(qū)中。
【文檔編號(hào)】G06F17/30GK106055630SQ201610366186
【公開(kāi)日】2016年10月26日
【申請(qǐng)日】2016年5月27日
【發(fā)明人】張旭華, 楊松, 萬(wàn)韶華
【申請(qǐng)人】北京小米移動(dòng)軟件有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1