專利名稱:訪問請求跟蹤方法和相關(guān)裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,具體涉及訪問請求跟蹤方法和相關(guān)裝置。
背景技術(shù):
在很多服務(wù)場景下,會(huì)對用戶操作進(jìn)行跟蹤。目前主要利用操作日志、系統(tǒng)日志、安全日志以及trace系統(tǒng)等跟蹤用戶操作。其中,日志系統(tǒng)記錄用戶在什么時(shí)候做了什么操作,對于操作的上下文并不關(guān)心,比如用戶從發(fā)起操作經(jīng)過哪些系統(tǒng)邊界哪些節(jié)點(diǎn)的流程并不關(guān)心;trace系統(tǒng)是函數(shù)級的跟蹤,記錄數(shù)據(jù)太多,包含不同進(jìn)程、不同線程等,更多的是跟蹤系統(tǒng)的異常狀態(tài),并不針對用戶請求會(huì)話。隨著互聯(lián)網(wǎng)、物聯(lián)網(wǎng)的發(fā)展服務(wù),人們越來越多的通過網(wǎng)絡(luò)完成工作(例如網(wǎng)上銀行、公司一卡通等等)。軟件已融入到人們生活的各個(gè)角落。網(wǎng)絡(luò)服務(wù)實(shí)時(shí)性的要求能和傳 統(tǒng)的桌面服務(wù)一樣,才能提升用戶體驗(yàn)吸引用戶。但是軟件從傳統(tǒng)簡單的桌面服務(wù)到分布式服務(wù),再到現(xiàn)在的云計(jì)算,軟件系統(tǒng)被部署在不同的計(jì)算節(jié)點(diǎn)中;另外為了滿足各節(jié)點(diǎn)的協(xié)作關(guān)系,計(jì)算節(jié)點(diǎn)上的功能模塊越來越多,模塊間通過不同的總線進(jìn)行交互。目前,在分層系統(tǒng)、分布式系統(tǒng)等系統(tǒng)中,有時(shí)存在系統(tǒng)無法快速響應(yīng)的問題,因此,如何相對有效的發(fā)現(xiàn)系統(tǒng)瓶頸,是一個(gè)值得深入研究的問題。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供訪問請求跟蹤方法和相關(guān)裝置,以期能夠有效的跟蹤訪問請求的處理路徑,進(jìn)而為找到系統(tǒng)瓶頸奠定基礎(chǔ)。本發(fā)明實(shí)施例一方面提供一種訪問請求跟蹤方法,可包括若第一服務(wù)接收的訪問請求攜帶跟蹤標(biāo)識(shí)但未攜帶跳躍標(biāo)識(shí),則在該訪問請求中添加跳躍標(biāo)識(shí),將添加了所述跳躍標(biāo)識(shí)的訪問請求寫入第一服務(wù)的請求總線隊(duì)列;保存第一跟蹤信息,其中,所述第一跟蹤信息包括所述跟蹤標(biāo)識(shí)、所述跳躍標(biāo)識(shí)、時(shí)間戳、接收添加了所述跳躍標(biāo)識(shí)的訪問請求的接收端的標(biāo)識(shí)信息、發(fā)送添加了所述跳躍標(biāo)識(shí)的訪問請求的發(fā)送端的標(biāo)識(shí)信息,所述時(shí)間戳包括所述添加了跳躍標(biāo)識(shí)的訪問請求入隊(duì)到第一服務(wù)的請求總線隊(duì)列的時(shí)間戳,和/或,所述添加了跳躍標(biāo)識(shí)的訪問請求出隊(duì)第一服務(wù)的總線請求隊(duì)列的時(shí)間戳。本發(fā)明實(shí)施例另一方面提供一種訪問請求跟蹤方法,包括若基于跟蹤策略確定需跟蹤第一服務(wù)接收的訪問請求,則在該訪問請求中添加跟蹤標(biāo)識(shí)和跳躍標(biāo)識(shí),將添加了所述跟蹤標(biāo)識(shí)和跳躍標(biāo)識(shí)的訪問請求寫入第一服務(wù)的請求總線隊(duì)列;保存第四跟蹤信息,其中,所述第四跟蹤信息包括所述跟蹤標(biāo)識(shí)、所述跳躍標(biāo)識(shí)、時(shí)間戳、接收添加了所述跳躍標(biāo)識(shí)的訪問請求的接收端的標(biāo)識(shí)信息、發(fā)送添加了所述跳躍標(biāo)識(shí)的訪問請求的發(fā)送端的標(biāo)識(shí)信息,所述時(shí)間戳包括所述添加了跳躍標(biāo)識(shí)的訪問請求入隊(duì)第一服務(wù)的請求總線隊(duì)列的時(shí)間戳,和/或,所述添加了跳躍標(biāo)識(shí)的訪問請求出隊(duì)第一服務(wù)的請求總線隊(duì)列的時(shí)間戳。本發(fā)明實(shí)施例另一方面提供一種訪問請求跟蹤裝置,包括第一標(biāo)識(shí)添加單元,用于若第一服務(wù)接收的訪問請求攜帶跟蹤標(biāo)識(shí)但未攜帶跳躍標(biāo)識(shí),則在該訪問請求中添加跳躍標(biāo)識(shí),將添加了所述跳躍標(biāo)識(shí)的訪問請求寫入第一服務(wù)的請求總線隊(duì)列;保存單元,用于保存第一跟蹤信息,其中,所述第一跟蹤信息包括所述跟蹤標(biāo)識(shí)、所述跳躍標(biāo)識(shí)、時(shí)間戳、接收添加了所述跳躍標(biāo)識(shí)的訪問請求的接收端的標(biāo)識(shí)信息、發(fā)送添加了所述跳躍標(biāo)識(shí)的訪問請求的發(fā)送端的標(biāo)識(shí)信息,所述時(shí)間戳 包括所述添加了跳躍標(biāo)識(shí)的訪問請求入隊(duì)到第一服務(wù)的請求總線隊(duì)列的時(shí)間戳,和/或,所述添加了跳躍標(biāo)識(shí)的訪問請求出隊(duì)第一服務(wù)的總線請求隊(duì)列的時(shí)間戳。本發(fā)明實(shí)施例另一方面提供一種訪問請求跟蹤裝置,包括第三標(biāo)識(shí)添加單元,用于若基于跟蹤策略確定需跟蹤第一服務(wù)接收的訪問請求,則在該訪問請求中添加跟蹤標(biāo)識(shí)和跳躍標(biāo)識(shí),將添加了所述跟蹤標(biāo)識(shí)和跳躍標(biāo)識(shí)的訪問請求寫入第一服務(wù)的請求總線隊(duì)列;保存單元,用于保存第四跟蹤信息,其中,所述第四跟蹤信息包括所述跟蹤標(biāo)識(shí)、所述跳躍標(biāo)識(shí)、時(shí)間戳、接收添加了所述跳躍標(biāo)識(shí)的訪問請求的接收端的標(biāo)識(shí)信息、發(fā)送添加了所述跳躍標(biāo)識(shí)的訪問請求的發(fā)送端的標(biāo)識(shí)信息,所述時(shí)間戳包括所述添加了跳躍標(biāo)識(shí)的訪問請求入隊(duì)第一服務(wù)的請求總線隊(duì)列的時(shí)間戳,和/或,所述添加了跳躍標(biāo)識(shí)的訪問請求出隊(duì)第一服務(wù)的請求總線隊(duì)列的時(shí)間戳。本發(fā)明實(shí)施例另一方面提供一種服務(wù)節(jié)點(diǎn),所述服務(wù)節(jié)點(diǎn)上部署有包括第一服務(wù)在內(nèi)的多個(gè)服務(wù),所述服務(wù)節(jié)點(diǎn)上還部署有如上述實(shí)施例所述的訪問請求跟蹤裝置。本發(fā)明實(shí)施例另一方面還提供一種計(jì)算機(jī)存儲(chǔ)介質(zhì),所述計(jì)算機(jī)存儲(chǔ)介質(zhì)存儲(chǔ)有程序,所述程序執(zhí)行時(shí)包括如上述訪問請求跟蹤方法的部分或全部步驟。由上可見,本發(fā)明實(shí)施例若分布式服務(wù)系統(tǒng)中的第一服務(wù)接收的訪問請求攜帶跟蹤標(biāo)識(shí)但未攜帶跳躍標(biāo)識(shí),則在該訪問請求中添加跳躍標(biāo)識(shí),將添加了該跳躍標(biāo)識(shí)的訪問請求寫入第一服務(wù)的請求總線隊(duì)列;保存第一跟蹤信息;其中,該第一跟蹤信息可包括該跟蹤標(biāo)識(shí)、該跳躍標(biāo)識(shí)、時(shí)間戳、接收添加了該跳躍標(biāo)識(shí)的訪問請求的接收端的標(biāo)識(shí)信息、發(fā)送添加了該跳躍標(biāo)識(shí)的訪問請求的發(fā)送端的標(biāo)識(shí)信息,該時(shí)間戳可包括該添加了跳躍標(biāo)識(shí)的訪問請求入隊(duì)到第一服務(wù)的請求總線隊(duì)列的時(shí)間戳,和/或該添加了跳躍標(biāo)識(shí)的訪問請求出隊(duì)第一服務(wù)的總線請求隊(duì)列的時(shí)間戳,由于保存的跟蹤信息包括跟蹤標(biāo)識(shí)、跳躍標(biāo)識(shí)、時(shí)間戳、訪問請求發(fā)送端標(biāo)識(shí)、訪問請求接收端標(biāo)識(shí)等等與訪問請求的處理路徑相關(guān)聯(lián)的信息,因此,基于保存的這些跟蹤信息,有助于實(shí)現(xiàn)有效的跟蹤該訪問請求在分布式服務(wù)系統(tǒng)不同階段的處理情況,進(jìn)而可為找到系統(tǒng)瓶頸奠定基礎(chǔ)。
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖I是本發(fā)明實(shí)施例提供的一種訪問請求跟蹤方法的流程示意圖;圖2是本發(fā)明實(shí)施例提供的另一種訪問請求跟蹤方法的流程示意圖;圖3_a是本發(fā)明實(shí)施例提供的一種訪問請求跟蹤裝置的部署架構(gòu)示意圖;圖3_b是本發(fā)明實(shí)施例提供的另一種訪問請求跟蹤裝置的部署架構(gòu)示意圖;圖3-c是本發(fā)明實(shí)施例提供的另一種訪問請求跟蹤裝置的部署架構(gòu)示意圖; 圖3-d是本發(fā)明實(shí)施例提供的一種訪問請求的隊(duì)列進(jìn)出示意圖;圖4是本發(fā)明實(shí)施例提供的另一種訪問請求跟蹤方法的流程示意圖;圖5_a是本發(fā)明實(shí)施例提供的一種訪問請求跟蹤裝置的示意圖;圖5_b是本發(fā)明實(shí)施例提供的一種訪問請求跟蹤裝置的示意圖;圖5-c是本發(fā)明實(shí)施例提供的一種訪問請求跟蹤裝置的示意圖;圖5-d是本發(fā)明實(shí)施例提供的一種訪問請求跟蹤裝置的示意圖;圖6_a是本發(fā)明實(shí)施例提供的一種訪問請求跟蹤裝置的示意圖;圖6_b是本發(fā)明實(shí)施例提供的一種訪問請求跟蹤裝置的示意圖;圖6-c是本發(fā)明實(shí)施例提供的一種訪問請求跟蹤裝置的示意圖。
具體實(shí)施例方式本發(fā)明實(shí)施例提供訪問請求跟蹤方法和相關(guān)裝置,以期能夠有效的跟蹤訪問請求的處理路徑,進(jìn)而為找到系統(tǒng)瓶頸奠定基礎(chǔ)。下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”、“第三” “第四”等(如果存在)是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本發(fā)明的實(shí)施例例如能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤?。此外,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。以下分別進(jìn)行詳細(xì)說明。本發(fā)明一種訪問請求跟蹤方法的一個(gè)實(shí)施例,該訪問請求跟蹤方法可以包括若第一服務(wù)接收的訪問請求攜帶跟蹤標(biāo)識(shí)但未攜帶跳躍標(biāo)識(shí),則在該訪問請求中添加跳躍標(biāo)識(shí),將添加了該跳躍標(biāo)識(shí)的訪問請求寫入第一服務(wù)的請求總線隊(duì)列;保存第一跟蹤信息;其中,該第一跟蹤信息包括該跟蹤標(biāo)識(shí)、該跳躍標(biāo)識(shí)、時(shí)間戳、接收添加了該跳躍標(biāo)識(shí)的訪問請求的接收端的標(biāo)識(shí)信息、發(fā)送添加了該跳躍標(biāo)識(shí)的訪問請求的發(fā)送端的標(biāo)識(shí)信息,該時(shí)間戳可包括該添加了跳躍標(biāo)識(shí)的訪問請求入隊(duì)到第一服務(wù)的請求總線隊(duì)列的時(shí)間戳,和/或該添加了跳躍標(biāo)識(shí)的訪問請求出隊(duì)第一服務(wù)的總線請求隊(duì)列的時(shí)間戳。參見圖1,本發(fā)明實(shí)施例提供的一種訪問請求跟蹤方法可包括101、若第一服務(wù)接收到的訪問請求中攜帶有跟蹤標(biāo)識(shí)但未攜帶有跳躍標(biāo)識(shí),則在該訪問請求中添加跳躍標(biāo)識(shí),將添加了該跳躍標(biāo)識(shí)的訪問請求寫入第一服務(wù)的請求總線隊(duì)列;其中,本發(fā)明實(shí)施例方案可服務(wù)于分布式服務(wù)系統(tǒng),其中,分布式服務(wù)系統(tǒng)可包括一個(gè)或多個(gè)服務(wù)主機(jī)。其中,第一服務(wù)則部署于分布式服務(wù)系統(tǒng)中的某個(gè)服務(wù)主機(jī),而第一服務(wù)接收到的訪問請求可能來自某客戶端、分布式服務(wù)系統(tǒng)中的其它服務(wù)主機(jī)、其它服務(wù)、其它進(jìn)程或其它裝置等,訪問請求例如可為超文本傳送協(xié)議(HTTP, hypertext transportprotocol)請求或其它協(xié)議的訪問請求等,訪問請求可能請求訪問分布式服務(wù)系統(tǒng)的某些資源(如信息資源或處理資源等)等等。其中,分布式服務(wù)系統(tǒng)中的一個(gè)服務(wù)可能存在一個(gè) 或多個(gè)對應(yīng)執(zhí)行進(jìn)程。102、保存第一跟蹤信息;其中,第一跟蹤信息可包括該跟蹤標(biāo)識(shí)、該跳躍標(biāo)識(shí)、時(shí)間戳、接收添加了該跳躍標(biāo)識(shí)的訪問請求的接收端(其中,此處該接收端例如為第一服務(wù)調(diào)用的另一服務(wù),或其它服務(wù)節(jié)點(diǎn)或其它對象)的標(biāo)識(shí)信息、發(fā)送添加了該跳躍標(biāo)識(shí)的訪問請求的發(fā)送端(此處該發(fā)送端可能為第一服務(wù))的標(biāo)識(shí)信息,該時(shí)間戳可包括該添加了跳躍標(biāo)識(shí)的訪問請求入隊(duì)到第一服務(wù)的請求總線隊(duì)列的時(shí)間戳,和/或,該添加了跳躍標(biāo)識(shí)的訪問請求出隊(duì)第一服務(wù)的總線請求隊(duì)列的時(shí)間戳。此外,上述第一跟蹤信息也還可進(jìn)一步包括如下信息的一個(gè)或多個(gè)第一服務(wù)對應(yīng)的操作信息(其中,該操作信息例如可為能夠指示出第一服務(wù)的處理邏輯的信息)、上述發(fā)送端(此處可能為第一服務(wù))所屬服務(wù)節(jié)點(diǎn)的網(wǎng)際互聯(lián)協(xié)議(IP,Internet Protocol)地址、該發(fā)送端所屬服務(wù)節(jié)點(diǎn)的介質(zhì)訪問控制(MAC, Media Access Control)地址、該發(fā)送端所屬服務(wù)節(jié)點(diǎn)的主機(jī)名等、上述接收端所屬服務(wù)節(jié)點(diǎn)的IP地址、該接收端所屬服務(wù)節(jié)點(diǎn)的MAC地址、該接收端所屬服務(wù)節(jié)點(diǎn)的主機(jī)名,當(dāng)然還可包含其它一些信息。可以理解,接收端所屬服務(wù)節(jié)點(diǎn)和發(fā)送端所屬服務(wù)節(jié)點(diǎn),可能為不同的服務(wù)節(jié)點(diǎn)或同一服務(wù)節(jié)點(diǎn)。由上可見,本實(shí)施例若分布式服務(wù)系統(tǒng)中的第一服務(wù)接收的訪問請求攜帶跟蹤標(biāo)識(shí)但未攜帶跳躍標(biāo)識(shí),則在該訪問請求中添加跳躍標(biāo)識(shí),將添加了該跳躍標(biāo)識(shí)的訪問請求寫入第一服務(wù)的請求總線隊(duì)列;保存第一跟蹤信息;其中,該第一跟蹤信息可包括該跟蹤標(biāo)識(shí)、該跳躍標(biāo)識(shí)、時(shí)間戳、接收添加了該跳躍標(biāo)識(shí)的訪問請求的接收端的標(biāo)識(shí)信息、發(fā)送添加了該跳躍標(biāo)識(shí)的訪問請求的發(fā)送端的標(biāo)識(shí)信息,該時(shí)間戳可包括該添加了跳躍標(biāo)識(shí)的訪問請求入隊(duì)到第一服務(wù)的請求總線隊(duì)列的時(shí)間戳,和/或,該添加了跳躍標(biāo)識(shí)的訪問請求出隊(duì)第一服務(wù)的總線請求隊(duì)列的時(shí)間戳,由于保存的跟蹤信息包括跟蹤標(biāo)識(shí)、跳躍標(biāo)識(shí)、時(shí)間戳、訪問請求發(fā)送端標(biāo)識(shí)、訪問請求接收端標(biāo)識(shí)等等與訪問請求的處理路徑相關(guān)聯(lián)的信息,因此,基于這些跟蹤信息,有助于實(shí)現(xiàn)有效的跟蹤該訪問請求在分布式服務(wù)系統(tǒng)不同階段的處理情況,進(jìn)而可為找到系統(tǒng)瓶頸奠定基礎(chǔ)。在本發(fā)明的一些實(shí)施例中,若訪問請求攜帶有跟蹤標(biāo)識(shí)、則可認(rèn)為需要跟蹤該訪問請求的處理,若該訪問請求又未攜帶跳躍標(biāo)識(shí),則可在該訪問請求中添加跳躍標(biāo)識(shí),以便利用訪問請求中攜帶的跟蹤標(biāo)識(shí)和跳躍標(biāo)識(shí),來對該訪問請求在分布式服務(wù)系統(tǒng)中的處理情況進(jìn)行跟蹤。在本發(fā)明的另一個(gè)實(shí)施例中,若第一服務(wù)接收的訪問請求未攜帶跟蹤標(biāo)識(shí)和跳躍標(biāo)識(shí),且基于跟蹤策略確定需要跟蹤訪問請求(該跟蹤策略可根據(jù)不同服務(wù)場景具體設(shè)定,例如跟蹤策略可為跟蹤任何訪問請求、或跟蹤某些協(xié)議的訪問請求、或若系統(tǒng)響應(yīng)時(shí)間超過設(shè)定閾值,則跟蹤所有訪問請求或某些協(xié)議的訪問請求等等),則可在該訪問請求中添加跟蹤標(biāo)識(shí)和跳躍標(biāo)識(shí),將添加了該跟蹤標(biāo)識(shí)和跳躍標(biāo)識(shí)的訪問請求寫入第一服務(wù)的請求總線隊(duì)列;保存第二跟蹤信息;其中,第二跟蹤信息包括該跟蹤標(biāo)識(shí)、該跳躍標(biāo)識(shí)、時(shí)間戳、接收添加了該跳躍標(biāo)識(shí)的訪問請求的接收端(其中,此處該接收端例如為第一服務(wù)調(diào)用的另一服務(wù),或其它服務(wù)節(jié)點(diǎn)或其它對象)的標(biāo)識(shí)信息、發(fā)送添加了該跳躍標(biāo)識(shí)的訪問請求的發(fā)送端(其中,此處該發(fā)送端可為第一服務(wù))的標(biāo)識(shí)信息,上述時(shí)間戳可包括該添加了跳躍標(biāo)識(shí)的訪問請求入隊(duì)第一服務(wù)的請求總線隊(duì)列的時(shí)間戳,和/或,該添加了跳躍標(biāo)識(shí)的訪問請求出隊(duì)第一服務(wù)的請求總線隊(duì)列的時(shí)間戳。此外,上述第二跟蹤信息也還可進(jìn)一步包括如下信息的一個(gè)或多個(gè)第一服務(wù)對應(yīng)的操作信息(其中,該操作信息例如可為能夠指示 出第一服務(wù)處理邏輯的信息)、上述發(fā)送端(可能為第一服務(wù))所屬服務(wù)節(jié)點(diǎn)IP地址、該發(fā)送端所屬服務(wù)節(jié)點(diǎn)的MAC地址、該發(fā)送端所屬服務(wù)節(jié)點(diǎn)的主機(jī)名等、上述接收端所屬服務(wù)節(jié)點(diǎn)的IP地址、上述接收端所屬服務(wù)節(jié)點(diǎn)的MAC地址、該接收端所屬服務(wù)節(jié)點(diǎn)的主機(jī)名,當(dāng)然還可包含其它一些信息。其中,接收端所屬服務(wù)節(jié)點(diǎn)和發(fā)送端所屬服務(wù)節(jié)點(diǎn),可能為不同的服務(wù)節(jié)點(diǎn)或同一服務(wù)節(jié)點(diǎn)。在本發(fā)明的一些實(shí)施例中,可根據(jù)配置文件,在該訪問請求中添加跟蹤標(biāo)識(shí)和/或跳躍標(biāo)識(shí)(當(dāng)然還可根據(jù)配置文件在該訪問請求中添加其它信息);或者客戶端或分布式服務(wù)系統(tǒng)也可提供用戶輸入跟蹤標(biāo)識(shí)和/或跳躍標(biāo)識(shí)(和/或其它信息)的輸入接口,可從輸入接口接收跟蹤標(biāo)識(shí)和/或跳躍標(biāo)識(shí)(和/或其它信息),在訪問請求中添加從輸入接口接收到的跟蹤標(biāo)識(shí)和/或跳躍標(biāo)識(shí)(和/或其它信息)。此外,若第一服務(wù)調(diào)用的第二服務(wù)接收到攜帶上述跳躍標(biāo)識(shí)和跟蹤標(biāo)識(shí)的訪問請求,則可按照設(shè)定的跳躍標(biāo)識(shí)變換規(guī)則修改該訪問請求中攜帶的該跳躍標(biāo)識(shí)(其中,該跳躍標(biāo)識(shí)變換規(guī)則例如可為按設(shè)定的幅度(幅度如1、2或其它值)遞增或遞減接收的訪問請求中攜帶的跳躍標(biāo)識(shí)),將修改了跳躍標(biāo)識(shí)的訪問請求寫入第二服務(wù)的請求總線隊(duì)列;保存第三跟蹤信息;其中,該第三跟蹤信息包括該跟蹤標(biāo)識(shí)、該修改的跳躍標(biāo)識(shí)、時(shí)間戳、接收該修改了跳躍標(biāo)識(shí)的訪問請求的接收端(其中,此處該接收端例如為第二服務(wù)所調(diào)用的另一服務(wù),或其它服務(wù)節(jié)點(diǎn)或其它對象)的標(biāo)識(shí)信息、發(fā)送該修改了跳躍標(biāo)識(shí)的訪問請求的發(fā)送端(此處該發(fā)送端可為第一服務(wù))的標(biāo)識(shí)信息,其中,該時(shí)間戳包括修改了跳躍標(biāo)識(shí)的訪問請求入隊(duì)第二服務(wù)的請求總線隊(duì)列的時(shí)間戳,和/或,修改了跳躍標(biāo)識(shí)的訪問請求出隊(duì)第二服務(wù)的請求總線隊(duì)列的時(shí)間戳??梢岳斫?,根據(jù)訪問請求攜帶的跳躍標(biāo)識(shí)的取值和跳躍標(biāo)識(shí)變換規(guī)則,能夠推導(dǎo)出訪問請求經(jīng)過了多少個(gè)服務(wù)的處理。此外,上述第三跟蹤信息還可進(jìn)一步包括如下信息的一個(gè)或者多個(gè)第二服務(wù)對應(yīng)的操作信息(其中,該操作信息例如可為能夠指示出第二服務(wù)的處理邏輯的信息)、上述發(fā)送端(此處可為第二服務(wù))所屬服務(wù)節(jié)點(diǎn)IP地址、該發(fā)送端所屬服務(wù)節(jié)點(diǎn)的MAC地址、該發(fā)送端所屬服務(wù)節(jié)點(diǎn)的主機(jī)名等、上述接收端(此處可能為第二服務(wù)調(diào)用的其它服務(wù))所屬服務(wù)節(jié)點(diǎn)的IP地址、該接收端所屬服務(wù)節(jié)點(diǎn)的MAC地址、該接收端所屬服務(wù)節(jié)點(diǎn)的主機(jī)名,當(dāng)然還可包含其它一些信息??梢岳斫獾氖?,本發(fā)明實(shí)施例分布式服務(wù)系統(tǒng)中,服務(wù)接收到的不同訪問請求中攜帶的跟蹤標(biāo)識(shí)是分布式服務(wù)系統(tǒng)全局唯一的,或?yàn)榉?wù)接收到的不同訪問請求添加的跟蹤標(biāo)識(shí)是分布式服務(wù)系統(tǒng)全局唯一的,例如分布式服務(wù)系統(tǒng)中的某服務(wù)接收到的,分別來自客戶端A和客戶端B的訪問請求攜帶的跟蹤標(biāo)識(shí)是不同的,或者,例如為分布式服務(wù)系統(tǒng)中的某服務(wù)接收到的,分別來自客戶端A和客戶端B的訪問請求所添加的跟蹤標(biāo)識(shí)是不同的;即使是來自同一客戶端的不同訪問請求,對應(yīng)的跟蹤標(biāo)識(shí)也是不同的。這樣就便于利用訪問請求攜帶的分布式服務(wù)系統(tǒng)全局唯一的跟蹤標(biāo)識(shí)、來對該訪問請求在分布式服務(wù)系統(tǒng)中的處理請求進(jìn)行跟蹤。當(dāng)然,訪問請求中跟蹤標(biāo)識(shí)的全局唯一性也可以是相對而言的,例如老化失效的跟蹤標(biāo)識(shí)可重復(fù)使用,例如,為分布式服務(wù)系統(tǒng)中 某服務(wù)接收到的訪問請求ql添加的跟蹤標(biāo)識(shí)為Sid-OI (該跟蹤標(biāo)識(shí)Sid-OI在分布式服務(wù)系統(tǒng)中當(dāng)前所有有效的跟蹤標(biāo)識(shí)中是全局唯一的),以便利用跟蹤標(biāo)識(shí)Sid-OI來對訪問請求ql在分布式服務(wù)系統(tǒng)中的處理請求進(jìn)行跟蹤,一段時(shí)間之后該跟蹤標(biāo)識(shí)Sid-OI被老化處理,之后又可為分布式服務(wù)系統(tǒng)中某服務(wù)接收到的訪問請求q2添加跟蹤標(biāo)識(shí)Sid-OI (該跟蹤標(biāo)識(shí)Sid-OI在分布式服務(wù)系統(tǒng)中當(dāng)前所有有效的跟蹤標(biāo)識(shí)中是全局唯一的),以便利用跟蹤標(biāo)識(shí)Sid-OI來對訪問請求q2在分布式服務(wù)系統(tǒng)中的處理請求進(jìn)行跟蹤,以此類推。即,訪問請求中的跟蹤標(biāo)識(shí)的全局唯一性可以是相對于當(dāng)前有效的跟蹤標(biāo)識(shí)而言的,老化失效的跟蹤標(biāo)識(shí)后續(xù)可以重復(fù)使用。在本發(fā)明的一些實(shí)施例中,跳躍標(biāo)識(shí)例如可設(shè)置于訪問請求的協(xié)議頭或其它位置,而跟蹤標(biāo)識(shí)亦可設(shè)置于訪問請求的協(xié)議頭或其它位置,這樣便于讀取和識(shí)別。在本發(fā)明的一些實(shí)施例中,還可進(jìn)一步對服務(wù)內(nèi)函數(shù)對訪問請求的處理路徑進(jìn)行類似跟蹤。例如,若服務(wù)(如第一服務(wù)、第二服務(wù)或處理訪問請求的其它服務(wù))中,用于處理該訪問請求的第一函數(shù)調(diào)用了用于處理訪問請求的第二函數(shù),則可保存第一子跟蹤信息,其中,該第一子跟蹤信息可包括上述跟蹤標(biāo)識(shí)、第一函數(shù)(此處第一函數(shù)相對于第二函數(shù)為主調(diào)函數(shù))的標(biāo)識(shí)信息、第二函數(shù)(此處第二函數(shù)相對于第一函數(shù)為被調(diào)函數(shù))的標(biāo)識(shí)信息和第一函數(shù)調(diào)用第二函數(shù)的時(shí)間戳,該第一子跟蹤信息可進(jìn)一步包括第一函數(shù)或第二函數(shù)所屬服務(wù)的標(biāo)識(shí)信息。在本發(fā)明一些實(shí)施例中,可進(jìn)一步基于保存的跟蹤信息分析訪問請求的處理情況,例如,可基于跟蹤信息分析出在某個(gè)時(shí)間段內(nèi)各服務(wù)處理訪問請求的時(shí)間長短等等,根據(jù)處理時(shí)間長短來估測處理瓶頸。例如,若分析出在某時(shí)間段內(nèi),某個(gè)服務(wù)處理訪問請求的時(shí)間過長(超過設(shè)定閾值時(shí)還可生成告警提示信息),則可據(jù)此推斷這可能是造成處理性能瓶頸的一個(gè)原因,可進(jìn)一步嘗試升級該服務(wù),或可嘗試將服務(wù)遷移到其它服務(wù)節(jié)點(diǎn)部署,或可嘗試升級部署這些服務(wù)的服務(wù)節(jié)點(diǎn)的硬件等方式,來嘗試解決處理性能瓶頸問題。當(dāng)然,也還可進(jìn)一步基于保存的跟蹤信息來進(jìn)行其它的操作。例如,可利用保存的跟蹤信息來生成對應(yīng)的調(diào)用序列圖,該調(diào)用序列圖可展示出處理訪問請求的各個(gè)服務(wù)的調(diào)用關(guān)系、各個(gè)服務(wù)處理訪問請求的時(shí)長長短等,如此,根據(jù)該調(diào)用序列圖便可明了訪問請求在服務(wù)節(jié)點(diǎn)中的處理路徑和瓶頸。需要說明的是,本實(shí)施例的上述步驟例如可由分布式服務(wù)系統(tǒng)中的總線處理單元和/或其它模塊來具體實(shí)施。本實(shí)施例的上述方案,可部署在分布式服務(wù)系統(tǒng)的服務(wù)節(jié)點(diǎn)上具體實(shí)施,以便監(jiān)控服務(wù)節(jié)點(diǎn)上部署的各服務(wù)對訪問請求的處理路徑,當(dāng)然,本實(shí)施例的上述方案,也可部署在其它需要對服務(wù)的訪問請求的處理路徑進(jìn)行監(jiān)控的設(shè)備上。本發(fā)明一種訪問請求跟蹤方法的另一個(gè)實(shí)施例,該訪問請求跟蹤方法可以包括若基于跟蹤策略確定需跟蹤第一服務(wù)接收的訪問請求,則在該訪問請求中添加跟蹤標(biāo)識(shí)和跳躍標(biāo)識(shí),將該添加了跟蹤標(biāo)識(shí)和跳躍標(biāo)識(shí)的訪問請求寫入第一服務(wù)的請求總線隊(duì)列;保存第四跟蹤信息,該第四跟蹤信息包括該跟蹤標(biāo)識(shí)、該跳躍標(biāo)識(shí)、時(shí)間戳、接收添加了該跳躍標(biāo)識(shí)的訪問請求的接收端的標(biāo)識(shí)信息、發(fā)送添加了該跳躍標(biāo)識(shí)的訪問請求的發(fā)送端的標(biāo)識(shí)信息,該時(shí)間戳包括該添加了跟蹤標(biāo)識(shí)和跳躍標(biāo)識(shí)的訪問請求入隊(duì)第一服務(wù)的請求總線隊(duì)列的時(shí)間戳,和/或,該添加了跟蹤標(biāo)識(shí)和跳躍標(biāo)識(shí)的訪問請求出隊(duì)第一服務(wù)的請求總線隊(duì)列的時(shí)間戳。參見圖2,本發(fā)明實(shí)施例提供的一種訪問請求跟蹤方法可包括201、若基于跟蹤策略確定需跟蹤第一服務(wù)接收的訪問請求,則在該訪問請求中添 加跟蹤標(biāo)識(shí)和跳躍標(biāo)識(shí),將該添加了跟蹤標(biāo)識(shí)和跳躍標(biāo)識(shí)的訪問請求寫入第一服務(wù)的請求總線隊(duì)列;其中,本發(fā)明實(shí)施例方案可服務(wù)于分布式服務(wù)系統(tǒng),其中,分布式服務(wù)系統(tǒng)可包括一個(gè)或多個(gè)服務(wù)主機(jī)。其中,第一服務(wù)則屬于分布式服務(wù)系統(tǒng)中的某個(gè)服務(wù)主機(jī),而第一服務(wù)接收到的訪問請求可能來自某客戶端、分布式服務(wù)系統(tǒng)中的其它服務(wù)主機(jī)、其它服務(wù)、其它進(jìn)程或其它裝置等,訪問請求例如可為超文本傳送協(xié)議(HTTP, hypertext transportprotocol)請求或其它協(xié)議的訪問請求等,訪問請求可能請求訪問分布式服務(wù)系統(tǒng)的某些資源(如信息資源或處理資源等)等等。其中,分布式服務(wù)系統(tǒng)中的一個(gè)服務(wù)可能存在一個(gè)或者多個(gè)進(jìn)程。在本發(fā)明一些實(shí)施例中,跟蹤策略可根據(jù)不同服務(wù)場景具體設(shè)定,例如跟蹤策略可為跟蹤任何訪問請求、或跟蹤某些協(xié)議的訪問請求、或若系統(tǒng)響應(yīng)時(shí)間超過設(shè)定閾值,則跟蹤所有訪問請求或某些協(xié)議的訪問請求等等。202、保存第四跟蹤信息;其中,該第四跟蹤信息可包括該跟蹤標(biāo)識(shí)、該跳躍標(biāo)識(shí)、時(shí)間戳、接收添加了該跟蹤標(biāo)識(shí)和跳躍標(biāo)識(shí)的訪問請求的接收端的標(biāo)識(shí)信息(其中,此處該接收端例如為第一服務(wù)調(diào)用的另一服務(wù),或其它服務(wù)節(jié)點(diǎn)或其它對象)、發(fā)送該添加了跟蹤標(biāo)識(shí)和跳躍標(biāo)識(shí)的訪問請求的發(fā)送端的標(biāo)識(shí)信息(其中,此處該發(fā)送端可為第一服務(wù)),該時(shí)間戳可包括該添加了跟蹤標(biāo)識(shí)和跳躍標(biāo)識(shí)的訪問請求入隊(duì)第一服務(wù)的請求總線隊(duì)列的時(shí)間戳,和/或,該添加了跟蹤標(biāo)識(shí)和跳躍標(biāo)識(shí)的訪問請求出隊(duì)第一服務(wù)的請求總線隊(duì)列的時(shí)間戳。此外,上述第四跟蹤信息還可進(jìn)一步包括如下信息的一個(gè)或者多個(gè)第一服務(wù)對應(yīng)的操作信息(其中,該操作信息例如可為能夠指示出第一服務(wù)的處理邏輯的信息)、上述發(fā)送端(此處可為第一服務(wù))所屬服務(wù)節(jié)點(diǎn)IP地址、該發(fā)送端所屬服務(wù)節(jié)點(diǎn)的MAC地址、該發(fā)送端所屬服務(wù)節(jié)點(diǎn)的主機(jī)名等、上述接收端(此處可能為第一服務(wù)調(diào)用的其它服務(wù))所屬服務(wù)節(jié)點(diǎn)的IP地址、該接收端所屬服務(wù)節(jié)點(diǎn)的MAC地址、該接收端所屬服務(wù)節(jié)點(diǎn)的主機(jī)名,當(dāng)然還可包含其它一些信息。由上可見,本實(shí)施例中若基于跟蹤策略確定需跟蹤分布式服務(wù)系統(tǒng)中的第一服務(wù)接收的訪問請求,則在該訪問請求中添加跟蹤標(biāo)識(shí)和跳躍標(biāo)識(shí),將該添加了跟蹤標(biāo)識(shí)和跳躍標(biāo)識(shí)的訪問請求寫入第一服務(wù)的請求總線隊(duì)列;保存第三跟蹤信息;第三跟蹤信息可包括該跟蹤標(biāo)識(shí)、該跳躍標(biāo)識(shí)、時(shí)間戳、接收添加了該跟蹤標(biāo)識(shí)和跳躍標(biāo)識(shí)的訪問請求的接收端的標(biāo)識(shí)信息、發(fā)送添加了該跟蹤標(biāo)識(shí)和跳躍標(biāo)識(shí)的訪問請求的發(fā)送端的標(biāo)識(shí)信息,時(shí)間戳可包括該添加了跟蹤標(biāo)識(shí)和跳躍標(biāo)識(shí)的訪問請求入隊(duì)到第一服務(wù)的請求總線隊(duì)列的時(shí)間戳,和/或,該添加了跟蹤標(biāo)識(shí)和跳躍標(biāo)識(shí)的訪問請求出隊(duì)第一服務(wù)的總線請求隊(duì)列的時(shí)間戳,由于保存的跟蹤信息中包括跟蹤標(biāo)識(shí)、跳躍標(biāo)識(shí)、時(shí)間戳、訪問請求發(fā)送端標(biāo)識(shí)、訪問請求接收端標(biāo)識(shí)等等與訪問請求的處理路徑相關(guān)聯(lián)的信息,因此,基于這些跟蹤信息,有助于實(shí)現(xiàn)有效的跟蹤該訪問請求在分布式服務(wù)系統(tǒng)不同階段的處理情況,進(jìn)而可為找到系統(tǒng)瓶頸奠定基礎(chǔ)。在本發(fā)明的一些實(shí)施例中,可根據(jù)配置文件在該訪問請求中添加跟蹤標(biāo)識(shí)和/或跳躍標(biāo)識(shí)(當(dāng)然還可根據(jù)配置文件在該訪問請求中添加其它信息);或者客戶端或分布式服務(wù)系統(tǒng)也可提供用戶輸入跟蹤標(biāo)識(shí)和/或跳躍標(biāo)識(shí)(和/或其它信息)的輸入接口,可從輸入接口接收跟蹤標(biāo)識(shí)和/或跳躍標(biāo)識(shí)(和/或其它信息),在訪問請求中添加從輸入接口接收到的跟蹤標(biāo)識(shí)和/或跳躍標(biāo)識(shí)(和/或其它信息)。
此外,若第一服務(wù)調(diào)用的第二服務(wù)接收到攜帶上述跳躍標(biāo)識(shí)和跟蹤標(biāo)識(shí)的訪問請求,則可按照設(shè)定的跳躍標(biāo)識(shí)變換規(guī)則修改該訪問請求中攜帶的該跳躍標(biāo)識(shí)(其中,該跳躍標(biāo)識(shí)變換規(guī)則例如可為按設(shè)定的幅度(幅度如1、2或其它值)遞增或遞減接收的訪問請求中攜帶的跳躍標(biāo)識(shí)),將修改了跳躍標(biāo)識(shí)的訪問請求寫入第二服務(wù)的請求總線隊(duì)列;保存第五跟蹤信息;其中,該第五跟蹤信息包括該跟蹤標(biāo)識(shí)、該修改的跳躍標(biāo)識(shí)、時(shí)間戳、接收該修改了跳躍標(biāo)識(shí)的訪問請求的接收端(此處,該接收端例如為第二服務(wù)調(diào)用的另一服務(wù),或其它服務(wù)節(jié)點(diǎn)或其它對象)的標(biāo)識(shí)信息、發(fā)送該修改了跳躍標(biāo)識(shí)的訪問請求的發(fā)送端(此處該發(fā)送端可為第一服務(wù))的標(biāo)識(shí)信息,其中,該時(shí)間戳包括上述修改了跳躍標(biāo)識(shí)的訪問請求入隊(duì)第二服務(wù)的請求總線隊(duì)列的時(shí)間戳,和/或上述修改了跳躍標(biāo)識(shí)的訪問請求出隊(duì)第二服務(wù)的請求總線隊(duì)列的時(shí)間戳。此外,上述第五跟蹤信息還可進(jìn)一步包括如下信息的一個(gè)或者多個(gè)第二服務(wù)對應(yīng)的操作信息(其中,該操作信息例如可為能夠指示出第二服務(wù)的處理邏輯的信息)、上述發(fā)送端(此處可為第二服務(wù))所屬服務(wù)節(jié)點(diǎn)IP地址、該發(fā)送端所屬服務(wù)節(jié)點(diǎn)的MAC地址、該發(fā)送端所屬服務(wù)節(jié)點(diǎn)的主機(jī)名等、上述接收端(此處可能為第二服務(wù)調(diào)用的其它服務(wù))所屬服務(wù)節(jié)點(diǎn)的IP地址、該接收端所屬服務(wù)節(jié)點(diǎn)的MAC地址、該接收端所屬服務(wù)節(jié)點(diǎn)的主機(jī)名,當(dāng)然還可包含其它一些信息。可以理解的是,本發(fā)明實(shí)施例分布式服務(wù)系統(tǒng)中,服務(wù)接收到的不同訪問請求中攜帶的跟蹤標(biāo)識(shí)是分布式服務(wù)系統(tǒng)全局唯一的,或?yàn)榉?wù)接收到的不同訪問請求添加的跟蹤標(biāo)識(shí)是分布式服務(wù)系統(tǒng)全局唯一的,例如分布式服務(wù)系統(tǒng)中的某服務(wù)接收到的,分別來自客戶端A和客戶端B的訪問請求攜帶的跟蹤標(biāo)識(shí)是不同的,或者,例如為分布式服務(wù)系統(tǒng)中的某服務(wù)接收到的,分別來自客戶端A和客戶端B的訪問請求所添加的跟蹤標(biāo)識(shí)是不同的;即使是來自同一客戶端的不同訪問請求,對應(yīng)的跟蹤標(biāo)識(shí)也是不同的。這樣就便于利用訪問請求攜帶的分布式服務(wù)系統(tǒng)全局唯一的跟蹤標(biāo)識(shí)、來對該訪問請求在分布式服務(wù)系統(tǒng)中的處理請求進(jìn)行跟蹤。當(dāng)然,訪問請求中跟蹤標(biāo)識(shí)的全局唯一性也可以是相對而言的,例如老化失效的跟蹤標(biāo)識(shí)可重復(fù)使用,例如,為分布式服務(wù)系統(tǒng)中某服務(wù)接收到的訪問請求ql添加的跟蹤標(biāo)識(shí)為Sid-OI (該跟蹤標(biāo)識(shí)Sid-OI在分布式服務(wù)系統(tǒng)中當(dāng)前所有有效的跟蹤標(biāo)識(shí)中是全局唯一的),以便利用跟蹤標(biāo)識(shí)SID-01,對訪問請求ql在分布式服務(wù)系統(tǒng)中的處理請求進(jìn)行跟蹤,一段時(shí)間之后該跟蹤標(biāo)識(shí)Sid-OI被老化處理,之后又可為分布式服務(wù)系統(tǒng)中某服務(wù)接收到的訪問請求q2添加跟蹤標(biāo)識(shí)Sid-OI(該跟蹤標(biāo)識(shí)Sid-OI在分布式服務(wù)系統(tǒng)中當(dāng)前所有有效的跟蹤標(biāo)識(shí)中是全局唯一的),以便利用跟蹤標(biāo)識(shí)SID-01,對訪問請求q2在分布式服務(wù)系統(tǒng)中的處理請求進(jìn)行跟蹤,以此類推。即,訪問請求中的跟蹤標(biāo)識(shí)的全局唯一性可以是相對于當(dāng)前有效的跟蹤標(biāo)識(shí)而言的,老化失效的跟蹤標(biāo)識(shí)后續(xù)可以重復(fù)使用。在本發(fā)明的一些實(shí)施例中,跳躍標(biāo)識(shí)例如可設(shè)置于訪問請求的協(xié)議頭或其它位置,而跟蹤標(biāo)識(shí)亦可設(shè)置于訪問請求的協(xié)議頭或其它位置,這樣便于讀取和識(shí)別。
在本發(fā)明的一些實(shí)施例中,還可進(jìn)一步對服務(wù)內(nèi)函數(shù)對訪問請求的處理路徑進(jìn)行類似跟蹤。例如,若服務(wù)(如第一服務(wù)、第二服務(wù)或處理訪問請求的其它服務(wù))中,用于處理該訪問請求的第一函數(shù)調(diào)用了用于處理訪問請求的第二函數(shù),則可保存第一子跟蹤信息,其中,該第一子跟蹤信息可包括上述跟蹤標(biāo)識(shí)、第一函數(shù)(此處第一函數(shù)相對于第二函數(shù)為主調(diào)函數(shù))的標(biāo)識(shí)信息、第二函數(shù)(此處第二函數(shù)相對于第一函數(shù)為被調(diào)函數(shù))的標(biāo)識(shí)信息和第一函數(shù)調(diào)用第二函數(shù)的時(shí)間戳,該第一子跟蹤信息可進(jìn)一步包括第一函數(shù)或第二函數(shù)所屬服務(wù)的標(biāo)識(shí)信息。在本發(fā)明一些實(shí)施例中,可進(jìn)一步基于保存的跟蹤信息分析訪問請求的處理情況,例如,可基于跟蹤信息分析出在某個(gè)時(shí)間段內(nèi)各服務(wù)處理訪問請求的時(shí)間長短等等,根據(jù)處理時(shí)間長短來估測處理瓶頸。例如,若分析出在某時(shí)間段內(nèi),某個(gè)服務(wù)處理訪問請求的時(shí)間過長,則可據(jù)此推斷這可能是造成處理性能瓶頸的一個(gè)原因,可進(jìn)一步嘗試升級該服務(wù),或可嘗試將服務(wù)遷移到其它服務(wù)節(jié)點(diǎn)部署,或可嘗試升級部署這些服務(wù)的服務(wù)節(jié)點(diǎn)的硬件等方式,來嘗試解決處理性能瓶頸問題。當(dāng)然,也還可進(jìn)一步基于保存的跟蹤信息進(jìn)行其它的操作。例如,可利用保存的跟蹤信息來生成對應(yīng)的調(diào)用序列圖,該調(diào)用序列圖可展示出處理訪問請求的各個(gè)服務(wù)的調(diào)用關(guān)系、各個(gè)服務(wù)處理訪問請求的時(shí)長長短等,如此,根據(jù)該調(diào)用序列圖,便可明了訪問請求在服務(wù)節(jié)點(diǎn)中的處理路徑和瓶頸。需要說明的是,本實(shí)施例的上述步驟例如可由分布式服務(wù)系統(tǒng)中的總線處理單元和/或其它模塊來協(xié)調(diào)實(shí)施。本實(shí)施例的上述方案,可部署在分布式服務(wù)系統(tǒng)的服務(wù)節(jié)點(diǎn)上具體實(shí)施,以便監(jiān)控服務(wù)節(jié)點(diǎn)上部署的各服務(wù)對訪問請求的處理路徑,當(dāng)然,本實(shí)施例的上述方案,也可部署在其它需要對服務(wù)的訪問請求的處理路徑進(jìn)行監(jiān)控的設(shè)備上。為便于更好的理解和實(shí)施本發(fā)明實(shí)施例的上述方案,下面通過一些應(yīng)用場景進(jìn)行舉例說明。參見圖3-a,圖3-a為本發(fā)明實(shí)施例舉例提供的訪問請求跟蹤裝置的部署架構(gòu)示意圖。其中,服務(wù)節(jié)點(diǎn)中部署有多個(gè)服務(wù)(圖中主要以其中的服務(wù)A、服務(wù)B和服務(wù)C舉例),訪問請求跟蹤裝置300用于跟蹤服務(wù)節(jié)點(diǎn)中部署的服務(wù)對訪問請求的處理路徑等。進(jìn)一步的,服務(wù)節(jié)點(diǎn)上還可部署管理客戶端,以便用戶通過管理客戶端向訪問請求跟蹤裝置300查詢的訪問請求的跟蹤情況。參見圖3-b,本發(fā)明實(shí)施例提供的一種訪問請求跟蹤裝置300,可包括總線處理單元301、存儲(chǔ)單元302和分析器303。為便于理解和實(shí)施,下面舉例基于圖3_b所示部署架構(gòu)下的一種訪問請求跟蹤流程,其它架構(gòu)可以此類推。參見圖4,本發(fā)明實(shí)施例提供的另一種訪問請求跟蹤方法,可包括以下內(nèi)容401、客戶端向服務(wù)節(jié)點(diǎn)發(fā)送攜帶有跟蹤ID的訪問請求que-3 ;其中,跟蹤ID具有全系統(tǒng)唯一性,跟蹤ID在整個(gè)跟蹤流中保持不變,在需跟蹤時(shí)加入跟蹤ID。402、服務(wù)節(jié)點(diǎn)的服務(wù)A接收到訪問請求que-3 ;服務(wù)節(jié)點(diǎn)的總線處理單元判斷服務(wù)A接收到的訪問請求que-3是否攜帶跟蹤ID ;若是(表示需要跟蹤訪問請求que-3),則執(zhí)行步驟403 ;若否(表示無需跟蹤訪問請求que-3),則可按照現(xiàn)有流程來繼續(xù)處理訪問請求que_3。403、總線處理單元若判斷出訪問請求que-3攜帶跟蹤標(biāo)識(shí),在訪問請求que_3的 協(xié)議頭添加跳躍ID,將添加了該跳躍ID的訪問請求que-3寫入到服務(wù)A的請求總線隊(duì)列;其中,跳躍ID用來標(biāo)識(shí)消息流的上下文關(guān)系,跳躍ID可有規(guī)律隨著調(diào)用發(fā)生而變化。404、服務(wù)A調(diào)用服務(wù)B,服務(wù)A向服務(wù)B發(fā)送服務(wù)A請求總線隊(duì)列中添加了該跳躍ID的訪問請求que-3 ;參見圖3-d,圖3-d為一種服務(wù)的請求總線隊(duì)列和響應(yīng)總線隊(duì)列的出入隊(duì)示意圖,訪問請求通過接口進(jìn)入請求總線隊(duì)列,而后進(jìn)行請求分發(fā)和處理,處理后的請求響應(yīng)進(jìn)入響應(yīng)總線隊(duì)列,之后出響應(yīng)總線隊(duì)列。405、總線處理單元調(diào)用collect接口保存跟蹤信息sll到存儲(chǔ)單元;其中,此時(shí)總線處理單元保存的跟蹤信息sll可包括上述跟蹤標(biāo)識(shí)、上述跳躍標(biāo)識(shí)、時(shí)間戳、接收添加了該跳躍標(biāo)識(shí)的訪問請求的接收端(服務(wù)B)的標(biāo)識(shí)信息、發(fā)送添加了該跳躍標(biāo)識(shí)的訪問請求的發(fā)送端(服務(wù)A)的標(biāo)識(shí)信息,上述時(shí)間戳可包括該添加了跳躍標(biāo)識(shí)的訪問請求入隊(duì)服務(wù)A的請求總線隊(duì)列的時(shí)間戳,和/或,該添加了跳躍標(biāo)識(shí)的訪問請求出隊(duì)服務(wù)A的請求總線隊(duì)列的時(shí)間戳。此外,上述第二跟蹤信息也還可進(jìn)一步包括如下信息的一個(gè)或多個(gè)服務(wù)A對應(yīng)的操作信息(其中,該操作信息例如可為能夠指示出服務(wù)A的處理邏輯的信息)、上述發(fā)送端(服務(wù)A)所屬服務(wù)節(jié)點(diǎn)IP地址、該發(fā)送端所屬服務(wù)節(jié)點(diǎn)的MAC地址、該發(fā)送端所屬服務(wù)節(jié)點(diǎn)的主機(jī)名等、上述接收端(服務(wù)B)所屬服務(wù)節(jié)點(diǎn)的IP地址、接收端所屬服務(wù)節(jié)點(diǎn)的MAC地址、接收端所屬服務(wù)節(jié)點(diǎn)的主機(jī)名,當(dāng)然還可包含其它一些額外的抓取信息(其中,訪問請求que-3的協(xié)議頭例如可攜帶數(shù)據(jù)抓取規(guī)則,總線處理單元可根據(jù)數(shù)據(jù)抓取規(guī)則來抓取數(shù)據(jù))。406、服務(wù)B接收添加了跳躍ID的訪問請求que_3 ;總線處理單元判斷出訪問請求que-3攜帶跟蹤ID和跳躍ID,則按照設(shè)定的跳躍ID變換規(guī)則修改訪問請求que_3攜帶的跳躍ID,將修改了跳躍ID的訪問請求que-3寫入到服務(wù)B的請求總線隊(duì)列;407、服務(wù)B調(diào)用服務(wù)C,服務(wù)B向調(diào)用的服務(wù)C發(fā)送服務(wù)B的請求總線隊(duì)列中添加修改了跳躍ID的訪問請求que-3 ;408、總線處理單元調(diào)用collect接口保存跟蹤信息sl2到數(shù)據(jù)庫;其中,此時(shí)總線處理單元保存的跟蹤信息sll可包括上述跟蹤標(biāo)識(shí)、上述修改的跳躍標(biāo)識(shí)、時(shí)間戳、接收添加了該跳躍標(biāo)識(shí)的訪問請求的接收端(服務(wù)C)的標(biāo)識(shí)信息、發(fā)送添加了該跳躍標(biāo)識(shí)的訪問請求的發(fā)送端(服務(wù)B)的標(biāo)識(shí)信息,上述時(shí)間戳可包括該添加了跳躍標(biāo)識(shí)的訪問請求入隊(duì)服務(wù)B的請求總線隊(duì)列的時(shí)間戳,和/或,該添加了跳躍標(biāo)識(shí)的訪問請求出隊(duì)服務(wù)B的請求總線隊(duì)列的時(shí)間戳。此外,上述第二跟蹤信息也還可進(jìn)一步包括如下信息的一個(gè)或多個(gè)服務(wù)B對應(yīng)的操作信息(其中,該操作信息例如可為能夠指示出服務(wù)B的處理邏輯的信息)、上述發(fā)送端(服務(wù)B)所屬服務(wù)節(jié)點(diǎn)IP地址、該發(fā)送端所屬服務(wù)節(jié)點(diǎn)的MAC地址、該發(fā)送端所屬服務(wù)節(jié)點(diǎn)的主機(jī)名等、上述接收端(服務(wù)C)所屬服務(wù)節(jié)點(diǎn)的IP地址、接收端所屬服務(wù)節(jié)點(diǎn)的MAC地址、接收端所屬服務(wù)節(jié)點(diǎn)的主機(jī)名,當(dāng)然還可包含其它一些額外的抓取信息(其中,訪問請求que-3的協(xié)議頭例如可攜帶數(shù)據(jù)抓取規(guī)則, 總線處理單元可根據(jù)數(shù)據(jù)抓取規(guī)則來抓取數(shù)據(jù))。若還需調(diào)用其它服務(wù),可基于上述跟蹤法方式以此類推。在本發(fā)明一些實(shí)施例中,還可進(jìn)一步根據(jù)需要,對訪問請求在某服務(wù)內(nèi)部的處理路徑進(jìn)行跟蹤,對訪問請求在服務(wù)內(nèi)部的處理進(jìn)行跟蹤的方式類似于上述方式,如可在訪問請求的協(xié)議頭設(shè)置跟蹤ID和跳躍ID的基礎(chǔ)上,服務(wù)的執(zhí)行進(jìn)程還可在該訪問請求的協(xié)議頭增加子跳躍ID,通過子跳躍ID的變化來跟蹤該服務(wù)中的各函數(shù)對該訪問請求的處理情況,并可調(diào)用相關(guān)接口(如collect接口)來保存跟蹤信息,而訪問請求中的子跳躍ID在出該服務(wù)時(shí)可去除。參見圖3-c,在本發(fā)明的一些實(shí)施例中,可在服務(wù)節(jié)點(diǎn)的某些服務(wù)內(nèi)部署服務(wù)內(nèi)跟蹤單元304,服務(wù)內(nèi)跟蹤單元304可進(jìn)一步對服務(wù)內(nèi)函數(shù)對訪問請求的處理路徑進(jìn)行類似跟蹤。例如,若服務(wù)C中用于處理該訪問請求的第一函數(shù)調(diào)用了用于處理訪問請求的第二函數(shù),則服務(wù)內(nèi)跟蹤單元304可調(diào)用collect接口保存第一子跟蹤信息到存儲(chǔ)單元303,其中,第一子跟蹤信息可包括上述跟蹤ID、第一函數(shù)(此處第一函數(shù)相對于第二函數(shù)為主調(diào)函數(shù))的標(biāo)識(shí)信息、第二函數(shù)(此處第二函數(shù)相對于第一函數(shù)為被調(diào)函數(shù))的標(biāo)識(shí)信息和第一函數(shù)調(diào)用第二函數(shù)的時(shí)間戳,該第一子跟蹤信息可進(jìn)一步包括第一函數(shù)或第二函數(shù)所屬服務(wù)的標(biāo)識(shí)信息等。此外,若第一函數(shù)或第二函數(shù)還調(diào)用的第一服務(wù)中的其它函數(shù),跟蹤方式可以此類推。分析器303可利用跟蹤ID和跳躍Id等生成詳細(xì)的調(diào)用序列圖。用戶可通過管理客戶端來查看調(diào)用序列圖,可通過設(shè)置顯示規(guī)則可以將耗時(shí)最久、調(diào)用頻度高的服務(wù)接口高亮顯示,管理客戶端還可根據(jù)用戶指令來展示相關(guān)的詳細(xì)說明信息。由上可見,本實(shí)施例若分布式服務(wù)系統(tǒng)中的服務(wù)接收的訪問請求攜帶跟蹤標(biāo)識(shí)但未攜帶跳躍標(biāo)識(shí),則在該訪問請求中添加跳躍標(biāo)識(shí),將添加了該跳躍標(biāo)識(shí)的訪問請求寫入該服務(wù)的請求總線隊(duì)列;保存跟蹤信息;其中,該跟蹤信息可包括該跟蹤標(biāo)識(shí)、該跳躍標(biāo)識(shí)、時(shí)間戳、接收添加了該跳躍標(biāo)識(shí)的訪問請求的接收端的標(biāo)識(shí)信息、發(fā)送添加了該跳躍標(biāo)識(shí)的訪問請求的發(fā)送端的標(biāo)識(shí)信息,當(dāng)訪問請求進(jìn)出服務(wù)的請求總線隊(duì)列,就保存相關(guān)跟蹤信息。由于保存的跟蹤信息包括跟蹤標(biāo)識(shí)、跳躍標(biāo)識(shí)、時(shí)間戳、訪問請求發(fā)送端標(biāo)識(shí)、訪問請求接收端標(biāo)識(shí)等等與訪問請求的處理路徑相關(guān)聯(lián)的信息,因此,基于這些跟蹤信息,有助于實(shí)現(xiàn)有效的跟蹤該訪問請求在分布式服務(wù)系統(tǒng)不同階段的處理情況,進(jìn)而可為找到系統(tǒng)瓶頸奠定基礎(chǔ)。需要說明的是,對于前述的各方法實(shí)施例,為了簡單描述,故將其都表述為一系列的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動(dòng)作順序的限制,因?yàn)橐罁?jù)本發(fā)明,某些步驟可以采用其他順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作和模塊并不一定是本發(fā)明所必須的。為便于更好的實(shí)施本發(fā)明實(shí)施例的上述方案,下面還提供用于實(shí)施上述方案的相
關(guān)裝置。參見圖5,本發(fā)明實(shí)施例提供的一種訪問請求跟蹤裝置500,可包括第一標(biāo)識(shí)添加單元510和保存單元520。其中,第一標(biāo)識(shí)添加單元510,用于若第一服務(wù)接收的訪問請求攜帶跟 蹤標(biāo)識(shí)但未攜帶跳躍標(biāo)識(shí),則在該訪問請求中添加跳躍標(biāo)識(shí),將添加了上述跳躍標(biāo)識(shí)的訪問請求寫入第一服務(wù)的請求總線隊(duì)列;保存單元520,用于保存第一跟蹤信息,其中,第一跟蹤信息可包括上述跟蹤標(biāo)識(shí)、上述跳躍標(biāo)識(shí)、時(shí)間戳、接收添加了上述跳躍標(biāo)識(shí)的訪問請求的接收端的標(biāo)識(shí)信息、發(fā)送添加了上述跳躍標(biāo)識(shí)的訪問請求的發(fā)送端的標(biāo)識(shí)信息,上述時(shí)間戳包括上述添加了跳躍標(biāo)識(shí)的訪問請求入隊(duì)到第一服務(wù)的請求總線隊(duì)列的時(shí)間戳,和/或,上述添加了跳躍標(biāo)識(shí)的訪問請求出隊(duì)第一服務(wù)的總線請求隊(duì)列的時(shí)間戳。參見圖5-b,在本發(fā)明的一些實(shí)施例中,訪問請求跟蹤裝置500還可包括第二標(biāo)識(shí)添加單元530,用于若第一服務(wù)接收的訪問請求未攜帶跟蹤標(biāo)識(shí)和跳躍標(biāo)識(shí),且基于跟蹤策略確定需要跟蹤訪問請求,則在該訪問請求中添加跟蹤標(biāo)識(shí)和跳躍標(biāo)識(shí),將添加了上述跟蹤標(biāo)識(shí)和跳躍標(biāo)識(shí)的訪問請求寫入第一服務(wù)的請求總線隊(duì)列;保存單元520還可用于,保存第二跟蹤信息,其中,第二跟蹤信息可包括上述跟蹤標(biāo)識(shí)、上述跳躍標(biāo)識(shí)、時(shí)間戳、接收添加了上述跟蹤標(biāo)識(shí)和跳躍標(biāo)識(shí)的訪問請求的接收端的標(biāo)識(shí)信息、發(fā)送添加了上述跟蹤標(biāo)識(shí)和跳躍標(biāo)識(shí)的訪問請求的發(fā)送端的標(biāo)識(shí)信息,其中,上述時(shí)間戳包括上述添加了上述跟蹤標(biāo)識(shí)和跳躍標(biāo)識(shí)的訪問請求入隊(duì)第一服務(wù)的請求總線隊(duì)列的時(shí)間戳,和/或上述添加了跟蹤標(biāo)識(shí)和跳躍標(biāo)識(shí)的訪問請求出隊(duì)第一服務(wù)的請求總線隊(duì)列的時(shí)間戳。參見圖5-c,在本發(fā)明的一些實(shí)施例中,訪問請求跟蹤裝置500還可包括標(biāo)識(shí)修改單元540,用于若上述第一服務(wù)調(diào)用的第二服務(wù)接收到攜帶上述跳躍標(biāo)識(shí)和跟蹤標(biāo)識(shí)的訪問請求,則按照設(shè)定的跳躍標(biāo)識(shí)變換規(guī)則修改該訪問請求中攜帶的上述跳躍標(biāo)識(shí),將修改了跳躍標(biāo)識(shí)的訪問請求寫入第二服務(wù)的請求總線隊(duì)列;保存單元520還可用于,保存第三跟蹤信息,其中,上述第三跟蹤信息包括上述跟蹤標(biāo)識(shí)、上述修改的跳躍標(biāo)識(shí)、時(shí)間戳、接收修改了跳躍標(biāo)識(shí)的訪問請求的接收端的標(biāo)識(shí)信息、發(fā)送修改了跳躍標(biāo)識(shí)的訪問請求的發(fā)送端的標(biāo)識(shí)信息,其中,上述時(shí)間戳包括上述修改了跳躍標(biāo)識(shí)的訪問請求入隊(duì)第二服務(wù)的請求總線隊(duì)列的時(shí)間戳,和/或,上述修改了跳躍標(biāo)識(shí)的訪問請求出隊(duì)第二服務(wù)的請求總線隊(duì)列的時(shí)間戳。在本發(fā)明的一些實(shí)施例中,還可進(jìn)一步對服務(wù)內(nèi)函數(shù)對訪問請求的處理路徑進(jìn)行類似跟蹤。例如,保存單元620還可用于,若服務(wù)(如第一服務(wù)、第二服務(wù)或處理訪問請求的其它服務(wù))中,用于處理該訪問請求的第一函數(shù)調(diào)用了用于處理訪問請求的第二函數(shù),則可保存第一子跟蹤信息,其中,該第一子跟蹤信息可包括上述跟蹤標(biāo)識(shí)、第一函數(shù)(此處第一函數(shù)相對于第二函數(shù)為主調(diào)函數(shù))的標(biāo)識(shí)信息、第二函數(shù)(此處第二函數(shù)相對于第一函數(shù)為被調(diào)函數(shù))的標(biāo)識(shí)信息和第一函數(shù)調(diào)用第二函數(shù)的時(shí)間戳,該第一子跟蹤信息可進(jìn)一步包括第一函數(shù)或第二函數(shù)所屬服務(wù)的標(biāo)識(shí)信息。參見圖5-d,在本發(fā)明的一些實(shí)施例中,訪問請求跟蹤裝置500還可包括分析器550,用于利用保存單元520保存的跟蹤信息生成調(diào)用序列圖。在本發(fā)明一些實(shí)施例中,分析器550可進(jìn)一步基于保存的跟蹤信息分析訪問請求的處理情況,例如,可基于跟蹤信息分析出在某個(gè)時(shí)間段內(nèi)各服務(wù)處理訪問請求的時(shí)間長短等等,根據(jù)處理時(shí)間長短來估測處理瓶頸。例如,若分析出在某時(shí)間段內(nèi),某個(gè)服務(wù)處理訪問請求的時(shí)間過長(超過設(shè)定閾值時(shí)還可生成告警提示信息),則可據(jù)此推斷這可能是造成處理性能瓶頸的一個(gè)原因,可提示用戶升級該服務(wù),或可提示用戶將服務(wù)遷移到其它服務(wù)節(jié)點(diǎn)部署,或可提示用戶升級部署這些服務(wù)的服務(wù)節(jié)點(diǎn)的硬件等方式,來嘗試解決處理性能瓶頸問題。 可以理解的是,本實(shí)施例訪問請求跟蹤裝置各個(gè)功能模塊的功能,可以根據(jù)上述方法實(shí)施例中的方法具體實(shí)現(xiàn),其具體實(shí)現(xiàn)過程可以參照上述方法實(shí)施例的相關(guān)描述,此處不再一一贅述。參見圖6,本發(fā)明實(shí)施例提供的一種訪問請求跟蹤裝置600,可包括第三標(biāo)識(shí)添加單元610和保存單元620。其中,第三標(biāo)識(shí)添加單元610,用于若基于跟蹤策略確定需跟蹤第一服務(wù)接收的訪問請求,則在該訪問請求中添加跟蹤標(biāo)識(shí)和跳躍標(biāo)識(shí),將添加了上述跟蹤標(biāo)識(shí)和跳躍標(biāo)識(shí)的訪問請求寫入第一服務(wù)的請求總線隊(duì)列;保存單元620,用于保存第四跟蹤信息,其中,上述第四跟蹤信息包括上述跟蹤標(biāo)識(shí)、上述跳躍標(biāo)識(shí)、時(shí)間戳、接收添加了上述跳躍標(biāo)識(shí)的訪問請求的接收端的標(biāo)識(shí)信息、發(fā)送添加了上述跳躍標(biāo)識(shí)的訪問請求的發(fā)送端的標(biāo)識(shí)信息,上述時(shí)間戳包括上述添加了跳躍標(biāo)識(shí)的訪問請求入隊(duì)第一服務(wù)的請求總線隊(duì)列的時(shí)間戳,和/或,上述添加了跳躍標(biāo)識(shí)的訪問請求出隊(duì)第一服務(wù)的請求總線隊(duì)列的時(shí)間戳。參見圖6-b,在本發(fā)明的一些實(shí)施例中,訪問請求跟蹤裝置600還可包括標(biāo)識(shí)修改單元630,用于若上述第一服務(wù)調(diào)用的第二服務(wù)接收到攜帶上述跳躍標(biāo)識(shí)和跟蹤標(biāo)識(shí)的訪問請求,則按照設(shè)定的跳躍標(biāo)識(shí)變換規(guī)則修改該訪問請求中攜帶的跳躍標(biāo)識(shí),將修改了跳躍標(biāo)識(shí)的訪問請求寫入第二服務(wù)的請求總線隊(duì)列;保存單元620還可用于,保存第五跟蹤信息,其中,上述第五跟蹤信息包括上述跟蹤標(biāo)識(shí)、上述修改的跳躍標(biāo)識(shí)、時(shí)間戳、接收修改了跳躍標(biāo)識(shí)的訪問請求的接收端的標(biāo)識(shí)信息、發(fā)送修改了跳躍標(biāo)識(shí)的訪問請求的發(fā)送端的標(biāo)識(shí)信息,其中,上述時(shí)間戳包括上述修改了跳躍標(biāo)識(shí)的訪問請求入隊(duì)第二服務(wù)的請求總線隊(duì)列的時(shí)間戳,和/或,上述修改了跳躍標(biāo)識(shí)的訪問請求出隊(duì)第二服務(wù)的請求總線隊(duì)列的時(shí)間戳。在本發(fā)明的一些實(shí)施例中,還可進(jìn)一步對服務(wù)內(nèi)函數(shù)對訪問請求的處理路徑進(jìn)行類似跟蹤。例如,保存單元620還可用于,若服務(wù)(如第一服務(wù)、第二服務(wù)或處理訪問請求的其它服務(wù))中,用于處理該訪問請求的第一函數(shù)調(diào)用了用于處理訪問請求的第二函數(shù),則可保存第一子跟蹤信息,其中,該第一子跟蹤信息可包括上述跟蹤標(biāo)識(shí)、第一函數(shù)(此處第一函數(shù)相對于第二函數(shù)為主調(diào)函數(shù))的標(biāo)識(shí)信息、第二函數(shù)(此處第二函數(shù)相對于第一函數(shù)為被調(diào)函數(shù))的標(biāo)識(shí)信息和第一函數(shù)調(diào)用第二函數(shù)的時(shí)間戳,該第一子跟蹤信息可進(jìn)一步包括第一函數(shù)或第二函數(shù)所屬服務(wù)的標(biāo)識(shí)信息。參見圖6-c,在本發(fā)明的一些實(shí)施例中,訪問請求跟蹤裝置600還可包括分析器640,用于利用保存單元620保存的跟蹤信息生成調(diào)用序列圖。在本發(fā)明一些實(shí)施例中,分析器640可進(jìn)一步基于保存的跟蹤信息分析訪問請求的處理情況,例如,可基于跟蹤信息分析出在某個(gè)時(shí)間段內(nèi)各服務(wù)處理訪問請求的時(shí)間長短等等,根據(jù)處理時(shí)間長短來估測處理瓶頸。例如,若分析出在某時(shí)間段內(nèi),某個(gè)服務(wù)處理訪問請求的時(shí)間過長(超過設(shè)定閾值時(shí)還可生成告警提示信息),則可據(jù)此推斷這可能是造成處理性能瓶頸的一個(gè)原因,可提示用戶升級該服務(wù),或可提示用戶將服務(wù)遷移到其它服務(wù)節(jié)點(diǎn)部署,或可提示用戶升級部署這些服務(wù)的服務(wù)節(jié)點(diǎn)的硬件等方式,來嘗試解決處理性能瓶頸問題。
可以理解的是,本實(shí)施例訪問請求跟蹤裝置各個(gè)功能模塊的功能,可以根據(jù)上述方法實(shí)施例中的方法具體實(shí)現(xiàn),其具體實(shí)現(xiàn)過程可以參照上述方法實(shí)施例的相關(guān)描述,此處不再一一贅述。本發(fā)明實(shí)施例還提供一種服務(wù)節(jié)點(diǎn),其中,該服務(wù)節(jié)點(diǎn)上可部署有包括第一服務(wù)在內(nèi)的至少一個(gè)服務(wù),該服務(wù)節(jié)點(diǎn)上還可部署有訪問請求跟蹤裝置500或600。本發(fā)明實(shí)施例還提供一種分布式服務(wù)系統(tǒng),包括多個(gè)服務(wù)節(jié)點(diǎn),該多個(gè)服務(wù)節(jié)點(diǎn)中的至少一個(gè)服務(wù)節(jié)點(diǎn)上部署有包括第一服務(wù)在內(nèi)的至少一個(gè)服務(wù),該服務(wù)節(jié)點(diǎn)上還部署訪問請求跟蹤裝置500或600。本發(fā)明實(shí)施例還提供一種計(jì)算機(jī)存儲(chǔ)介質(zhì),其中,該計(jì)算機(jī)存儲(chǔ)介質(zhì)可存儲(chǔ)有程序,該程序執(zhí)行時(shí)包括上述方法實(shí)施例中記載的訪問請求跟蹤方法的部分或全部步驟。在上述實(shí)施例中,對各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒有詳述的部分,可以參見其他實(shí)施例的相關(guān)描述。綜上,本發(fā)明實(shí)施例若分布式服務(wù)系統(tǒng)中的服務(wù)接收的訪問請求攜帶跟蹤標(biāo)識(shí)但未攜帶跳躍標(biāo)識(shí),則在該訪問請求中添加跳躍標(biāo)識(shí),將添加了該跳躍標(biāo)識(shí)的訪問請求寫入該服務(wù)的請求總線隊(duì)列;保存跟蹤信息;其中,該跟蹤信息可包括該跟蹤標(biāo)識(shí)、該跳躍標(biāo)識(shí)、時(shí)間戳、接收添加了該跳躍標(biāo)識(shí)的訪問請求的接收端的標(biāo)識(shí)信息、發(fā)送添加了該跳躍標(biāo)識(shí)的訪問請求的發(fā)送端的標(biāo)識(shí)信息,當(dāng)訪問請求進(jìn)出服務(wù)的請求總線隊(duì)列,就保存相關(guān)跟蹤信息。由于保存的跟蹤信息包括跟蹤標(biāo)識(shí)、跳躍標(biāo)識(shí)、時(shí)間戳、訪問請求發(fā)送端標(biāo)識(shí)、訪問請求接收端標(biāo)識(shí)等等與訪問請求的處理路徑相關(guān)聯(lián)的彳目息,因此,基于保存的這些跟蹤"[目息,有助于實(shí)現(xiàn)有效的跟蹤該訪問請求在分布式服務(wù)系統(tǒng)不同階段的處理情況,進(jìn)而可為找到系統(tǒng)瓶頸奠定基礎(chǔ)。本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的各種方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,該程序可以存儲(chǔ)于一計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,存儲(chǔ)介質(zhì)例如可以包括只讀存儲(chǔ)單元、隨機(jī)存儲(chǔ)單元、磁盤或光盤等。以上對本發(fā)明實(shí)施例所提供的訪問請求跟蹤方法和相關(guān)裝置進(jìn)行了詳細(xì)介紹,本文中服務(wù)了具體個(gè)例對本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式
及服務(wù)范圍上均會(huì)有改變之處,綜上,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。
權(quán)利要求
1.一種訪問請求跟蹤方法,其特征在于,包括 若第一服務(wù)接收的訪問請求攜帶跟蹤標(biāo)識(shí)但未攜帶跳躍標(biāo)識(shí),則在該訪問請求中添加跳躍標(biāo)識(shí),將添加了所述跳躍標(biāo)識(shí)的訪問請求寫入第一服務(wù)的請求總線隊(duì)列; 保存第一跟蹤信息, 其中,所述第一跟蹤信息包括 所述跟蹤標(biāo)識(shí)、所述跳躍標(biāo)識(shí)、時(shí)間戳、接收添加了所述跳躍標(biāo)識(shí)的訪問請求的接收端的標(biāo)識(shí)信息、發(fā)送添加了所述跳躍標(biāo)識(shí)的訪問請求的發(fā)送端的標(biāo)識(shí)信息,所述時(shí)間戳包括所述添加了跳躍標(biāo)識(shí)的訪問請求入隊(duì)到第一服務(wù)的請求總線隊(duì)列的時(shí)間戳,和/或,所述添加了跳躍標(biāo)識(shí)的訪問請求出隊(duì)第一服務(wù)的總線請求隊(duì)列的時(shí)間戳。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于, 所述方法還包括 若第一服務(wù)接收的訪問請求未攜帶跟蹤標(biāo)識(shí)和跳躍標(biāo)識(shí),且基于跟蹤策略確定需要跟蹤訪問請求,則在該訪問請求中添加跟蹤標(biāo)識(shí)和跳躍標(biāo)識(shí),將添加了所述跟蹤標(biāo)識(shí)和跳躍標(biāo)識(shí)的訪問請求寫入第一服務(wù)的請求總線隊(duì)列; 保存第二跟蹤信息, 其中,所述第二跟蹤信息包括 所述跟蹤標(biāo)識(shí)、所述跳躍標(biāo)識(shí)、時(shí)間戳、接收添加了所述跟蹤標(biāo)識(shí)和跳躍標(biāo)識(shí)的訪問請求的接收端的標(biāo)識(shí)信息、發(fā)送添加了所述跟蹤標(biāo)識(shí)和跳躍標(biāo)識(shí)的訪問請求的發(fā)送端的標(biāo)識(shí)信息,其中,所述時(shí)間戳包括所述添加了所述跟蹤標(biāo)識(shí)和跳躍標(biāo)識(shí)的訪問請求入隊(duì)第一服務(wù)的請求總線隊(duì)列的時(shí)間戳,和/或所述添加了跟蹤標(biāo)識(shí)和跳躍標(biāo)識(shí)的訪問請求出隊(duì)第一服務(wù)的請求總線隊(duì)列的時(shí)間戳。
3.根據(jù)權(quán)利要求I或2所述的方法,其特征在于, 所述方法還包括 若所述第一服務(wù)中用于處理所述訪問請求的第一函數(shù)調(diào)用了用于處理所述訪問請求的第二函數(shù),則保存第一子跟蹤信息,其中,所述第一子跟蹤信息包括所述跟蹤標(biāo)識(shí)、第一函數(shù)的標(biāo)識(shí)信息、第二函數(shù)的標(biāo)識(shí)信息和所述第一函數(shù)調(diào)用第二函數(shù)的時(shí)間戳。
4.根據(jù)權(quán)利要求I至3任一項(xiàng)所述的方法,其特征在于, 所述方法還包括 若所述第一服務(wù)調(diào)用的第二服務(wù)接收到攜帶所述跳躍標(biāo)識(shí)和跟蹤標(biāo)識(shí)的訪問請求,則按照設(shè)定的跳躍標(biāo)識(shí)變換規(guī)則修改該訪問請求中攜帶的所述跳躍標(biāo)識(shí),將修改了跳躍標(biāo)識(shí)的訪問請求寫入第二服務(wù)的請求總線隊(duì)列; 保存第二跟蹤彳目息, 其中,所述第三跟蹤信息包括 所述跟蹤標(biāo)識(shí)、所述修改的跳躍標(biāo)識(shí)、時(shí)間戳、接收修改了跳躍標(biāo)識(shí)的訪問請求的接收端的標(biāo)識(shí)信息、發(fā)送修改了跳躍標(biāo)識(shí)的訪問請求的發(fā)送端的標(biāo)識(shí)信息,其中,所述時(shí)間戳包括所述修改了跳躍標(biāo)識(shí)的訪問請求入隊(duì)第二服務(wù)的請求總線隊(duì)列的時(shí)間戳,和/或,所述修改了跳躍標(biāo)識(shí)的訪問請求出隊(duì)第二服務(wù)的請求總線隊(duì)列的時(shí)間戳。
5.根據(jù)權(quán)利要求I至4任一項(xiàng)所述的方法,其特征在于, 所述方法還包括根據(jù)保存所述跟蹤信息生成所述訪問請求對應(yīng)的調(diào)用序列圖。
6.一種訪問請求跟蹤方法,其特征在于,包括 若基于跟蹤策略確定需跟蹤第一服務(wù)接收的訪問請求,則在該訪問請求中添加跟蹤標(biāo)識(shí)和跳躍標(biāo)識(shí),將添加了所述跟蹤標(biāo)識(shí)和跳躍標(biāo)識(shí)的訪問請求寫入第一服務(wù)的請求總線隊(duì)列; 保存第四跟蹤信息, 其中,所述第四跟蹤信息包括 所述跟蹤標(biāo)識(shí)、所述跳躍標(biāo)識(shí)、時(shí)間戳、接收添加了所述跳躍標(biāo)識(shí)的訪問請求的接收端的標(biāo)識(shí)信息、發(fā)送添加了所述跳躍標(biāo)識(shí)的訪問請求的發(fā)送端的標(biāo)識(shí)信息,所述時(shí)間戳包括所述添加了跳躍標(biāo)識(shí)的訪問請求入隊(duì)第一服務(wù)的請求總線隊(duì)列的時(shí)間戳,和/或,所述添加了跳躍標(biāo)識(shí)的訪問請求出隊(duì)第一服務(wù)的請求總線隊(duì)列的時(shí)間戳。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于, 所述方法還包括 若所述第一服務(wù)中用于處理所述訪問請求的第一函數(shù)調(diào)用了用于處理所述訪問請求的第二函數(shù),則保存第一子跟蹤信息,其中,所述第一子跟蹤信息包括所述跟蹤標(biāo)識(shí)、第一函數(shù)的標(biāo)識(shí)信息、第二函數(shù)的標(biāo)識(shí)信息和所述第一函數(shù)調(diào)用第二函數(shù)的時(shí)間戳。
8.根據(jù)權(quán)利要求6或7所述的方法,其特征在于, 所述方法還包括若所述第一服務(wù)調(diào)用的第二服務(wù)接收到攜帶所述跳躍標(biāo)識(shí)和跟蹤標(biāo)識(shí)的訪問請求,則按照設(shè)定的跳躍標(biāo)識(shí)變換規(guī)則修改該訪問請求中攜帶的跳躍標(biāo)識(shí),將修改了跳躍標(biāo)識(shí)的訪問請求寫入第二服務(wù)的請求總線隊(duì)列; 保存第五跟蹤信息; 其中,所述第五跟蹤信息包括 所述跟蹤標(biāo)識(shí)、所述修改的跳躍標(biāo)識(shí)、時(shí)間戳、接收修改了跳躍標(biāo)識(shí)的訪問請求的接收端的標(biāo)識(shí)信息、發(fā)送修改了跳躍標(biāo)識(shí)的訪問請求的發(fā)送端的標(biāo)識(shí)信息,其中,所述時(shí)間戳包括所述修改了跳躍標(biāo)識(shí)的訪問請求入隊(duì)第二服務(wù)的請求總線隊(duì)列的時(shí)間戳,和/或,所述修改了跳躍標(biāo)識(shí)的訪問請求出隊(duì)第二服務(wù)的請求總線隊(duì)列的時(shí)間戳。
9.一種訪問請求跟蹤裝置,其特征在于,包括 第一標(biāo)識(shí)添加單元,用于若第一服務(wù)接收的訪問請求攜帶跟蹤標(biāo)識(shí)但未攜帶跳躍標(biāo)識(shí),則在該訪問請求中添加跳躍標(biāo)識(shí),將添加了所述跳躍標(biāo)識(shí)的訪問請求寫入第一服務(wù)的請求總線隊(duì)列; 保存單元,用于保存第一跟蹤信息, 其中,所述第一跟蹤信息包括 所述跟蹤標(biāo)識(shí)、所述跳躍標(biāo)識(shí)、時(shí)間戳、接收添加了所述跳躍標(biāo)識(shí)的訪問請求的接收端的標(biāo)識(shí)信息、發(fā)送添加了所述跳躍標(biāo)識(shí)的訪問請求的發(fā)送端的標(biāo)識(shí)信息,所述時(shí)間戳包括所述添加了跳躍標(biāo)識(shí)的訪問請求入隊(duì)到第一服務(wù)的請求總線隊(duì)列的時(shí)間戳,和/或,所述添加了跳躍標(biāo)識(shí)的訪問請求出隊(duì)第一服務(wù)的總線請求隊(duì)列的時(shí)間戳。
10.根據(jù)權(quán)利要求9所述的訪問請求跟蹤裝置,其特征在于, 所述訪問請求跟蹤裝置還包括 第二標(biāo)識(shí)添加單元,用于若第一服務(wù)接收的訪問請求未攜帶跟蹤標(biāo)識(shí)和跳躍標(biāo)識(shí),且基于跟蹤策略確定需要跟蹤訪問請求,則在該訪問請求中添加跟蹤標(biāo)識(shí)和跳躍標(biāo)識(shí),將添加了所述跟蹤標(biāo)識(shí)和跳躍標(biāo)識(shí)的訪問請求寫入第一服務(wù)的請求總線隊(duì)列; 所述保存單元還用于,保存第二跟蹤信息, 其中,所述第二跟蹤信息包括 所述跟蹤標(biāo)識(shí)、所述跳躍標(biāo)識(shí)、時(shí)間戳、接收添加了所述跟蹤標(biāo)識(shí)和跳躍標(biāo)識(shí)的訪問請求的接收端的標(biāo)識(shí)信息、發(fā)送添加了所述跟蹤標(biāo)識(shí)和跳躍標(biāo)識(shí)的訪問請求的發(fā)送端的標(biāo)識(shí)信息,其中,所述時(shí)間戳包括所述添加了所述跟蹤標(biāo)識(shí)和跳躍標(biāo)識(shí)的訪問請求入隊(duì)第一服務(wù)的請求總線隊(duì)列的時(shí)間戳,和/或所述添加了跟蹤標(biāo)識(shí)和跳躍標(biāo)識(shí)的訪問請求出隊(duì)第一服務(wù)的請求總線隊(duì)列的時(shí)間戳。
11.根據(jù)權(quán)利要求9或10所述的訪問請求跟蹤裝置,其特征在于, 所述訪問請求跟蹤裝置還包括 標(biāo)識(shí)修改單元,用于若所述第一服務(wù)調(diào)用的第二服務(wù)接收到攜帶所述跳躍標(biāo)識(shí)和跟蹤標(biāo)識(shí)的訪問請求,則按照設(shè)定的跳躍標(biāo)識(shí)變換規(guī)則修改該訪問請求中攜帶的所述跳躍標(biāo)識(shí),將修改了跳躍標(biāo)識(shí)的訪問請求寫入第二服務(wù)的請求總線隊(duì)列; 所述保存單元還用于,保存第三跟蹤信息, 其中,所述第三跟蹤信息包括 所述跟蹤標(biāo)識(shí)、所述修改的跳躍標(biāo)識(shí)、時(shí)間戳、接收修改了跳躍標(biāo)識(shí)的訪問請求的接收端的標(biāo)識(shí)信息、發(fā)送修改了跳躍標(biāo)識(shí)的訪問請求的發(fā)送端的標(biāo)識(shí)信息,其中,所述時(shí)間戳包括所述修改了跳躍標(biāo)識(shí)的訪問請求入隊(duì)第二服務(wù)的請求總線隊(duì)列的時(shí)間戳,和/或,所述修改了跳躍標(biāo)識(shí)的訪問請求出隊(duì)第二服務(wù)的請求總線隊(duì)列的時(shí)間戳。
12.—種訪問請求跟蹤裝置,其特征在于,包括 第三標(biāo)識(shí)添加單元,用于若基于跟蹤策略確定需跟蹤第一服務(wù)接收的訪問請求,則在該訪問請求中添加跟蹤標(biāo)識(shí)和跳躍標(biāo)識(shí),將添加了所述跟蹤標(biāo)識(shí)和跳躍標(biāo)識(shí)的訪問請求寫入第一服務(wù)的請求總線隊(duì)列; 保存單元,用于保存第四跟蹤信息, 其中,所述第四跟蹤信息包括 所述跟蹤標(biāo)識(shí)、所述跳躍標(biāo)識(shí)、時(shí)間戳、接收添加了所述跳躍標(biāo)識(shí)的訪問請求的接收端的標(biāo)識(shí)信息、發(fā)送添加了所述跳躍標(biāo)識(shí)的訪問請求的發(fā)送端的標(biāo)識(shí)信息,所述時(shí)間戳包括所述添加了跳躍標(biāo)識(shí)的訪問請求入隊(duì)第一服務(wù)的請求總線隊(duì)列的時(shí)間戳,和/或,所述添加了跳躍標(biāo)識(shí)的訪問請求出隊(duì)第一服務(wù)的請求總線隊(duì)列的時(shí)間戳。
13.根據(jù)權(quán)利要求12所述的訪問請求跟蹤裝置,其特征在于, 所述訪問請求跟蹤裝置還包括 標(biāo)識(shí)修改單元,用于若所述第一服務(wù)調(diào)用的第二服務(wù)接收到攜帶所述跳躍標(biāo)識(shí)和跟蹤標(biāo)識(shí)的訪問請求,則按照設(shè)定的跳躍標(biāo)識(shí)變換規(guī)則修改該訪問請求中攜帶的跳躍標(biāo)識(shí),將修改了跳躍標(biāo)識(shí)的訪問請求寫入第二服務(wù)的請求總線隊(duì)列; 所述保存單元還用于保存第五跟蹤信息,所述第五跟蹤信息包括所述跟蹤標(biāo)識(shí)、所述修改的跳躍標(biāo)識(shí)、時(shí)間戳、接收修改了跳躍標(biāo)識(shí)的訪問請求的接收端的標(biāo)識(shí)信息、發(fā)送修改了跳躍標(biāo)識(shí)的訪問請求的發(fā)送端的標(biāo)識(shí)信息,所述時(shí)間戳包括所述修改了跳躍標(biāo)識(shí)的訪問請求入隊(duì)第二服務(wù)的請求總線隊(duì)列的時(shí)間戳,和/或,所述修改了跳躍標(biāo)識(shí)的訪問請求出隊(duì)第二服務(wù)的請求總線隊(duì)列的時(shí)間戳。
14. 一種服務(wù)節(jié)點(diǎn),其特征在于,所述服務(wù)節(jié)點(diǎn)上部署有包括第一服務(wù)在內(nèi)的多個(gè)服務(wù),所述服務(wù)節(jié)點(diǎn)上還部署有如權(quán)利要求9至13任一項(xiàng)所述的訪問請求跟蹤裝置。
全文摘要
本發(fā)明實(shí)施例公開了訪問請求跟蹤方法和相關(guān)裝置,其中,一種訪問請求跟蹤方法,包括若第一服務(wù)接收的訪問請求攜帶跟蹤標(biāo)識(shí)但未攜帶跳躍標(biāo)識(shí),則在該訪問請求中添加跳躍標(biāo)識(shí),將添加了跳躍標(biāo)識(shí)的訪問請求寫入第一服務(wù)的請求總線隊(duì)列;保存第一跟蹤信息,第一跟蹤信息包括跟蹤標(biāo)識(shí)、跳躍標(biāo)識(shí)、時(shí)間戳、接收添加了跳躍標(biāo)識(shí)的訪問請求的接收端的標(biāo)識(shí)信息、發(fā)送添加了跳躍標(biāo)識(shí)的訪問請求的發(fā)送端的標(biāo)識(shí)信息,時(shí)間戳包括添加了跳躍標(biāo)識(shí)的訪問請求入隊(duì)到第一服務(wù)的請求總線隊(duì)列的時(shí)間戳,和/或添加了跳躍標(biāo)識(shí)的訪問請求出隊(duì)第一服務(wù)的總線請求隊(duì)列的時(shí)間戳。本發(fā)明實(shí)施例的方案有利于有效的跟蹤訪問請求的處理路徑,為找到系統(tǒng)瓶頸奠定基礎(chǔ)。
文檔編號H04L29/08GK102724195SQ201210205300
公開日2012年10月10日 申請日期2012年6月20日 優(yōu)先權(quán)日2012年6月20日
發(fā)明者程建杰 申請人:華為技術(shù)有限公司