[0024]作為所述的一種根據(jù)消息標(biāo)識(shí)追蹤數(shù)據(jù)包的系統(tǒng)的進(jìn)一步改進(jìn),所述數(shù)據(jù)包的格式包括有四個(gè)屬性,其具體為:消息標(biāo)識(shí)、功能、操作動(dòng)作和發(fā)送對(duì)象。
[0025]作為所述的一種根據(jù)消息標(biāo)識(shí)追蹤數(shù)據(jù)包的系統(tǒng)的進(jìn)一步改進(jìn),所述消息標(biāo)識(shí)為采用UUID生成的具有全球唯一識(shí)別碼的字符串。
[0026]本發(fā)明具體實(shí)施例中的服務(wù)器采用分布式系統(tǒng),本發(fā)明的數(shù)據(jù)包結(jié)構(gòu)如下:
{
“header”: {
“send_to,,: “xxxxxx,,,
“module,,: “xxxx,,,
“act1n”: “set”,
“msg_id”: “ be71029dc3b9a299cd722fc9070d92ec”
h
“body”: { }
};
需要說明的是,所述數(shù)據(jù)包結(jié)構(gòu)包含Header和Body兩個(gè)部分,Body部分是一個(gè)Map,將屬性名稱作為鍵值對(duì)存儲(chǔ)在通用報(bào)文中;Header部分包含msg_id,module, act1n,sencLto,按前到后排列依次為:消息標(biāo)識(shí)、功能、操作動(dòng)作和發(fā)送對(duì)象共四個(gè)屬性。這四個(gè)屬性中,msg_id是一個(gè)8字節(jié)的數(shù)據(jù)單元,用字符串表示為32個(gè)16進(jìn)制字符,任意一個(gè)服務(wù)請(qǐng)求,都具備一個(gè)全局唯一的ID信息module是一個(gè)長(zhǎng)度不限的字符串,根據(jù)產(chǎn)品功能進(jìn)行區(qū)分;act1n對(duì)應(yīng)HTTP增刪查改四種操作;send_to表示當(dāng)前這個(gè)報(bào)文發(fā)送給哪個(gè)客戶端或哪個(gè)服務(wù)集群。
[0027]其中,通過篩選消息標(biāo)識(shí)msg_id進(jìn)行隨機(jī)或全部分析數(shù)據(jù)報(bào)文,即可獲得每臺(tái)服務(wù)器在消息處理花費(fèi)的時(shí)間,進(jìn)而生成服務(wù)器健康狀況、報(bào)表等等,以便幫助開發(fā)人員定位分布式系統(tǒng)的性能瓶頸。
[0028]當(dāng)一個(gè)Tcp請(qǐng)求發(fā)送給Tcp服務(wù)器時(shí),由Tcp服務(wù)器分發(fā)給Business服務(wù)器,并由Business服務(wù)器處理后返回給Tcp服務(wù)器。
[0029]使用如下Linux命令獲得整個(gè)命令在系統(tǒng)中運(yùn)行的狀態(tài): find./ |xargs grep “be71029dc3b9a299cd722fc9070d92ec”,
然后從返回的結(jié)果中獲得這個(gè)消息的時(shí)間、分發(fā)到后端業(yè)務(wù)服務(wù)器的時(shí)間、后端業(yè)務(wù)服務(wù)器收到該消息的時(shí)間、后端業(yè)務(wù)服務(wù)器發(fā)出結(jié)果指令的時(shí)間、Tcp服務(wù)器收到該結(jié)果的時(shí)間和Tcp服務(wù)器發(fā)送結(jié)果的時(shí)間。根據(jù)這些時(shí)間即可很容易的獲得時(shí)間差,便可計(jì)算出系統(tǒng)運(yùn)行的瓶頸以及壓力的位置,從而可以調(diào)節(jié)整個(gè)服務(wù)器集群的工作數(shù)量,優(yōu)化系統(tǒng)性會(huì)K。
[0030]進(jìn)一步,本發(fā)明中會(huì)持續(xù)的監(jiān)控所有的消息日志文件,并根據(jù)當(dāng)前服務(wù)器的壓力對(duì)服務(wù)器的消息日志進(jìn)行抽樣或完整分析。當(dāng)出現(xiàn)有處理時(shí)間超長(zhǎng)和處理大量失敗的情況時(shí),會(huì)根據(jù)預(yù)先設(shè)定的系統(tǒng)管理員的聯(lián)系方式調(diào)用短息、郵件接口,向系統(tǒng)管理員發(fā)送當(dāng)前系統(tǒng)問題。系統(tǒng)管理員即可根據(jù)問題及時(shí)處理。
[0031]從上述內(nèi)容可知,本發(fā)明一種根據(jù)消息標(biāo)識(shí)追蹤數(shù)據(jù)包的方法及系統(tǒng)通過在數(shù)據(jù)包中增設(shè)消息標(biāo)識(shí),并根據(jù)該消息標(biāo)識(shí)對(duì)消息日志進(jìn)行分析,能有效追蹤到數(shù)據(jù)包在服務(wù)器中的處理情況,并且可以查看到在每個(gè)服務(wù)器處理花費(fèi)的時(shí)間以及是否正確返回結(jié)果等信息,大大方便開發(fā)人員定位系統(tǒng)性能瓶頸以及處理主要時(shí)間消耗。而且本發(fā)明還能實(shí)時(shí)監(jiān)控消息日志情況,當(dāng)發(fā)現(xiàn)系統(tǒng)問題時(shí),能及時(shí)通知管理員,有效提高維護(hù)的效率,大大減少問題處理的時(shí)間。
[0032]以上是對(duì)本發(fā)明的較佳實(shí)施進(jìn)行了具體說明,但本發(fā)明創(chuàng)造并不限于所述實(shí)施例,熟悉本領(lǐng)域的技術(shù)人員在不違背本發(fā)明精神的前提下還可做作出種種的等同變形或替換,這些等同的變形或替換均包含在本申請(qǐng)權(quán)利要求所限定的范圍內(nèi)。
【主權(quán)項(xiàng)】
1.一種根據(jù)消息標(biāo)識(shí)追蹤數(shù)據(jù)包的方法,其特征在于,包括以下步驟: A、當(dāng)服務(wù)器收到數(shù)據(jù)包、開始處理數(shù)據(jù)包、數(shù)據(jù)包處理結(jié)束或?qū)?shù)據(jù)包轉(zhuǎn)發(fā)到下個(gè)服務(wù)器處理的節(jié)點(diǎn)時(shí),生成包含消息標(biāo)識(shí)的消息日志; B、對(duì)所述消息日志進(jìn)行收集并處理,進(jìn)而生成描述服務(wù)器運(yùn)行狀況的報(bào)表。
2.根據(jù)權(quán)利要求1所述的一種根據(jù)消息標(biāo)識(shí)追蹤數(shù)據(jù)包的方法,其特征在于,所述步驟B中的對(duì)所述消息日志進(jìn)行收集并處理,其具體包括: B1、根據(jù)消息標(biāo)識(shí),對(duì)包含該消息標(biāo)識(shí)的消息日志進(jìn)行查找,并返回查找結(jié)果; B2、根據(jù)查找結(jié)果,從中提取收到該數(shù)據(jù)包的時(shí)間、分發(fā)到后端業(yè)務(wù)服務(wù)器的時(shí)間、后端業(yè)務(wù)服務(wù)器收到該數(shù)據(jù)包的時(shí)間、后端業(yè)務(wù)服務(wù)器發(fā)出結(jié)果指令的時(shí)間、Tcp服務(wù)器收到該結(jié)果的時(shí)間和Tcp服務(wù)器發(fā)送結(jié)果的時(shí)間。
3.根據(jù)權(quán)利要求1所述的一種根據(jù)消息標(biāo)識(shí)追蹤數(shù)據(jù)包的方法,其特征在于,還包括: C、實(shí)時(shí)監(jiān)控所有的消息日志,對(duì)消息日志進(jìn)行抽樣或完整分析,當(dāng)出現(xiàn)處理時(shí)間超出預(yù)設(shè)時(shí)間或處理失敗數(shù)量大于預(yù)設(shè)閾值的情況時(shí),根據(jù)預(yù)先設(shè)定的系統(tǒng)管理員的聯(lián)系方式調(diào)用短信和郵件接口,向系統(tǒng)管理員發(fā)送當(dāng)前系統(tǒng)問題。
4.根據(jù)權(quán)利要求1所述的一種根據(jù)消息標(biāo)識(shí)追蹤數(shù)據(jù)包的方法,其特征在于,所述數(shù)據(jù)包的格式包括有四個(gè)屬性,其具體為:消息標(biāo)識(shí)、功能、操作動(dòng)作和發(fā)送對(duì)象。
5.根據(jù)權(quán)利要求1所述的一種根據(jù)消息標(biāo)識(shí)追蹤數(shù)據(jù)包的方法,其特征在于,所述消息標(biāo)識(shí)為采用UUID生成的具有全球唯一識(shí)別碼的字符串。
6.一種根據(jù)消息標(biāo)識(shí)追蹤數(shù)據(jù)包的系統(tǒng),其特征在于,包括: 消息日志存儲(chǔ)模塊,用于當(dāng)服務(wù)器收到數(shù)據(jù)包、開始處理數(shù)據(jù)包、數(shù)據(jù)包處理結(jié)束或?qū)?shù)據(jù)包轉(zhuǎn)發(fā)到下個(gè)服務(wù)器處理的節(jié)點(diǎn)時(shí),生成包含消息標(biāo)識(shí)的消息日志; 消息日志分析模塊,用于對(duì)所述消息日志進(jìn)行收集并處理,進(jìn)而生成描述服務(wù)器運(yùn)行狀況的報(bào)表。
7.根據(jù)權(quán)利要求6所述的一種根據(jù)消息標(biāo)識(shí)追蹤數(shù)據(jù)包的系統(tǒng),其特征在于,所述消息日志分析模塊包括: 查找單元,用于根據(jù)消息標(biāo)識(shí),對(duì)包含該消息標(biāo)識(shí)的消息日志進(jìn)行查找,并返回查找結(jié)果; 提取單元,用于根據(jù)查找結(jié)果,從中提取收到該數(shù)據(jù)包的時(shí)間、分發(fā)到后端業(yè)務(wù)服務(wù)器的時(shí)間、后端業(yè)務(wù)服務(wù)器收到該數(shù)據(jù)包的時(shí)間、后端業(yè)務(wù)服務(wù)器發(fā)出結(jié)果指令的時(shí)間、Tcp服務(wù)器收到該結(jié)果的時(shí)間和Tcp服務(wù)器發(fā)送結(jié)果的時(shí)間。
8.根據(jù)權(quán)利要求6所述的一種根據(jù)消息標(biāo)識(shí)追蹤數(shù)據(jù)包的系統(tǒng),其特征在于,還包括: 監(jiān)控模塊,用于實(shí)時(shí)監(jiān)控所有的消息日志,對(duì)消息日志進(jìn)行抽樣或完整分析,當(dāng)出現(xiàn)處理時(shí)間超出預(yù)設(shè)時(shí)間或處理失敗數(shù)量大于預(yù)設(shè)閾值的情況時(shí),根據(jù)預(yù)先設(shè)定的系統(tǒng)管理員的聯(lián)系方式調(diào)用短信和郵件接口,向系統(tǒng)管理員發(fā)送當(dāng)前系統(tǒng)問題。
9.根據(jù)權(quán)利要求6所述的一種根據(jù)消息標(biāo)識(shí)追蹤數(shù)據(jù)包的系統(tǒng),其特征在于,所述數(shù)據(jù)包的格式包括有四個(gè)屬性,其具體為:消息標(biāo)識(shí)、功能、操作動(dòng)作和發(fā)送對(duì)象。
10.根據(jù)權(quán)利要求6所述的一種根據(jù)消息標(biāo)識(shí)追蹤數(shù)據(jù)包的系統(tǒng),其特征在于,所述消息標(biāo)識(shí)為采用UUID生成的具有全球唯一識(shí)別碼的字符串。
【專利摘要】本發(fā)明公開了一種根據(jù)消息標(biāo)識(shí)追蹤數(shù)據(jù)包的方法及系統(tǒng)通過在數(shù)據(jù)包中增設(shè)消息標(biāo)識(shí),并根據(jù)該消息標(biāo)識(shí)對(duì)消息日志進(jìn)行分析,能有效追蹤到數(shù)據(jù)包在服務(wù)器中的處理情況,并且可以查看到在每個(gè)服務(wù)器處理花費(fèi)的時(shí)間以及是否正確返回結(jié)果等信息,大大方便開發(fā)人員定位系統(tǒng)性能瓶頸以及處理主要時(shí)間消耗。而且本發(fā)明還能實(shí)時(shí)監(jiān)控消息日志情況,當(dāng)發(fā)現(xiàn)系統(tǒng)問題時(shí),能及時(shí)通知管理員,有效提高維護(hù)的效率,大大減少問題處理的時(shí)間。本發(fā)明作為一種根據(jù)消息標(biāo)識(shí)追蹤數(shù)據(jù)包的方法及系統(tǒng)可廣泛應(yīng)用于分布式系統(tǒng)中。
【IPC分類】H04L12-24, H04L12-26
【公開號(hào)】CN104618144
【申請(qǐng)?zhí)枴緾N201410853952
【發(fā)明人】田野, 劉朝, 綦振, 周遠(yuǎn), 姚秀萍, 馬煒鑌, 馬天元, 文大軍
【申請(qǐng)人】深圳市蘭丁科技有限公司
【公開日】2015年5月13日
【申請(qǐng)日】2014年12月31日