一種日志記錄方法、裝置及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本申請涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,具體涉及一種日志記錄方法和裝置。本申請同時涉及一種業(yè)務(wù)處理的請求方法和裝置,以及一種日志記錄系統(tǒng)。
【背景技術(shù)】
[0002]企業(yè)級應(yīng)用是指為商業(yè)組織、大型企業(yè)而創(chuàng)建并部署的解決方案及應(yīng)用。隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,當代的企業(yè)級應(yīng)用不再是一個個相互獨立的系統(tǒng)。在企業(yè)中,一般都會部署多個彼此連接的、相互通過不同集成層次進行交互的企業(yè)級應(yīng)用,同時這些應(yīng)用又都有可能與其它企業(yè)的相關(guān)應(yīng)用連接,從而構(gòu)成一個結(jié)構(gòu)復(fù)雜的、跨越Intranet和Internet的分布式企業(yè)應(yīng)用群集。在這種系統(tǒng)架構(gòu)下,要實現(xiàn)一個系統(tǒng)中的某個功能,可能需要多個系統(tǒng)相互配合才能完成。
[0003]在分布式企業(yè)應(yīng)用群集中,各個系統(tǒng)產(chǎn)生的日志信息通常存儲在各自的前置服務(wù)器中。當一個系統(tǒng)接收到業(yè)務(wù)處理請求時,首先生成對應(yīng)本次請求的事務(wù)處理標識符,通過在請求處理過程中將事務(wù)處理標識符傳遞至數(shù)據(jù)庫,實現(xiàn)系統(tǒng)內(nèi)部從中間件到數(shù)據(jù)庫整個處理過程的一體化監(jiān)控,建立了前置服務(wù)器和數(shù)據(jù)庫具體處理邏輯的關(guān)聯(lián)關(guān)系。當該系統(tǒng)需要調(diào)用其它系統(tǒng)以完成業(yè)務(wù)處理請求時,其它系統(tǒng)將生成新的事務(wù)處理標識符??梢姡斠粋€業(yè)務(wù)處理請求在不同系統(tǒng)中逐級進行處理時,對于該請求而言,各個系統(tǒng)生成的事務(wù)處理標識符是不一致的,即:同一事務(wù)處理在不同系統(tǒng)中產(chǎn)生的日志信息之間不具有關(guān)聯(lián)性。
[0004]由于分布式企業(yè)應(yīng)用群集的各個系統(tǒng)之間的耦合度較高,當一個系統(tǒng)出現(xiàn)的問題時,既可能是該系統(tǒng)本身的原因,還可能是其它關(guān)聯(lián)系統(tǒng)相互作用的結(jié)果。要判定哪一個系統(tǒng)是問題產(chǎn)生的根源,不僅需要從顯式發(fā)生問題的系統(tǒng)的前置服務(wù)器獲取與事務(wù)處理相關(guān)的日志信息,還需要登錄該系統(tǒng)所調(diào)用的其它系統(tǒng)的前置服務(wù)器中,獲取與該事務(wù)處理相關(guān)的其它相關(guān)系統(tǒng)的日志信息,將這些日志信息綜合起來進行問題分析,以確定問題出現(xiàn)的根源。
[0005]例如,A系統(tǒng)的一個功能在運行過程中出現(xiàn)運行緩慢的問題,假如A系統(tǒng)中該功能的實現(xiàn)需要調(diào)用B系統(tǒng)的b接口和C系統(tǒng)的c接口,而C系統(tǒng)的c接口的實現(xiàn)還需要調(diào)用D系統(tǒng)的d接口,那么當A系統(tǒng)出現(xiàn)運行緩慢的情況時,很可能是由于B、C或D三個系統(tǒng)提供的接口引起的。要分析上述不同系統(tǒng)間調(diào)用過程中出現(xiàn)的問題,需要維護人員將A、B、C、D四個系統(tǒng)的日志信息分別讀取出來,然后再對它們進行關(guān)聯(lián)分析。特別的,如果這些系統(tǒng)還是集群部署的,則要獲取一個事務(wù)處理相關(guān)的所有日志,就需要從B、C、D三個系統(tǒng)的所有前置服務(wù)中找到相關(guān)的日志信息。
[0006]然而,由于同一事務(wù)處理在不同系統(tǒng)中產(chǎn)生的日志信息之間不具有關(guān)聯(lián)性,使得很難獲取同一事務(wù)處理相關(guān)的各系統(tǒng)日志信息,更加無法定位到問題產(chǎn)生的根源。因此,現(xiàn)有技術(shù)存在同一事務(wù)處理在不同系統(tǒng)中產(chǎn)生的日志信息之間不具有關(guān)聯(lián)性的問題。
【發(fā)明內(nèi)容】
[0007]本申請?zhí)峁┮环N日志記錄方法和裝置,以解決現(xiàn)有技術(shù)存在同一事務(wù)處理在不同系統(tǒng)中產(chǎn)生的日志信息之間不具有關(guān)聯(lián)性的問題。本申請另外提供一種業(yè)務(wù)處理的請求方法和裝置,以及一種日志記錄系統(tǒng)。
[0008]本申請?zhí)峁┮环N日志記錄方法,包括:
[0009]接收調(diào)用方發(fā)送的對應(yīng)特定業(yè)務(wù)的業(yè)務(wù)處理請求;
[0010]將所述業(yè)務(wù)處理請求中包括的所述調(diào)用方預(yù)先生成的程序執(zhí)行標識符,作為與所述特定業(yè)務(wù)的本次執(zhí)行相對應(yīng)的事務(wù)處理標識符;
[0011]執(zhí)行所述特定業(yè)務(wù),并對應(yīng)所述特定業(yè)務(wù)的本次執(zhí)行產(chǎn)生由所述事務(wù)處理標識符標識的業(yè)務(wù)處理日志信息。
[0012]可選的,所述執(zhí)行所述特定業(yè)務(wù)包括:
[0013]在執(zhí)行所述特定業(yè)務(wù)包括的子程序之前,為所述子程序的執(zhí)行生成對應(yīng)所述子程序的程序執(zhí)行標識符;
[0014]執(zhí)行所述子程序,并對應(yīng)所述子程序的執(zhí)行產(chǎn)生子程序起始執(zhí)行的日志信息和子程序終止執(zhí)行的日志信息;所述子程序起始執(zhí)行的日志信息和子程序終止執(zhí)行的日志信息由所述事務(wù)處理標識符和對應(yīng)所述子程序的所述程序執(zhí)行標識符共同標識。
[0015]可選的,所述子程序的執(zhí)行需要調(diào)用下一級特定業(yè)務(wù);
[0016]相應(yīng)的,所述執(zhí)行所述子程序包括:
[0017]向執(zhí)行所述下一級特定業(yè)務(wù)的系統(tǒng)發(fā)送對應(yīng)所述下一級特定業(yè)務(wù)的業(yè)務(wù)處理請求;所述下一級業(yè)務(wù)處理請求包括對應(yīng)所述子程序的所述程序執(zhí)行標識符。
[0018]可選的,所述特定業(yè)務(wù)包括WebService應(yīng)用程序。
[0019]可選的,所述業(yè)務(wù)處理請求包括的所述程序執(zhí)行標識符存儲在SOAP頭文件中。
[0020]可選的,在所述接收調(diào)用方發(fā)送的對應(yīng)特定業(yè)務(wù)的業(yè)務(wù)處理請求之后,還包括:
[0021]驗證所述調(diào)用方是否有權(quán)請求所述特定業(yè)務(wù)。
[0022]可選的,在所述接收調(diào)用方發(fā)送的對應(yīng)特定業(yè)務(wù)的業(yè)務(wù)處理請求之后,還包括:
[0023]從所述業(yè)務(wù)處理請求中獲取所述程序執(zhí)行標識符,并將其綁定到執(zhí)行所述特定業(yè)務(wù)的線程。
[0024]可選的,若所述業(yè)務(wù)處理請求中既未包括所述調(diào)用方的程序執(zhí)行標識符,也未包括調(diào)用方事務(wù)處理標識符,則在所述接收調(diào)用方發(fā)送的對應(yīng)特定業(yè)務(wù)的業(yè)務(wù)處理請求之后,還包括:
[0025]為所述特定業(yè)務(wù)的執(zhí)行生成所述事務(wù)處理標識符。
[0026]可選的,所述事務(wù)處理標識符根據(jù)所述調(diào)用方的IP地址、所述事務(wù)處理標識符的生成時間以及所述業(yè)務(wù)處理請求的標識符的至少一者生成。
[0027]可選的,所述程序執(zhí)行標識符根據(jù)所述程序執(zhí)行標識符對應(yīng)的程序的程序名和所述程序執(zhí)行標識符的生成時間生成。
[0028]相應(yīng)的,本申請還提供一種日志記錄裝置,包括:
[0029]接收單元,用于接收調(diào)用方發(fā)送的對應(yīng)特定業(yè)務(wù)的業(yè)務(wù)處理請求;
[0030]設(shè)置單元,用于將所述業(yè)務(wù)處理請求中包括的所述調(diào)用方預(yù)先生成的程序執(zhí)行標識符,作為與所述特定業(yè)務(wù)的本次執(zhí)行相對應(yīng)的事務(wù)處理標識符;
[0031]執(zhí)行單元,用于執(zhí)行所述特定業(yè)務(wù),并對應(yīng)所述特定業(yè)務(wù)的本次執(zhí)行產(chǎn)生由所述事務(wù)處理標識符標識的業(yè)務(wù)處理日志信息。
[0032]可選的,所述執(zhí)行單元包括:
[0033]生成子單元,用于在執(zhí)行所述特定業(yè)務(wù)包括的子程序之前,為所述子程序的執(zhí)行生成對應(yīng)所述子程序的程序執(zhí)行標識符;
[0034]子程序執(zhí)行子單元,用于執(zhí)行所述子程序,并對應(yīng)所述子程序的執(zhí)行產(chǎn)生子程序起始執(zhí)行的日志信息和子程序終止執(zhí)行的日志信息;所述子程序起始執(zhí)行的日志信息和子程序終止執(zhí)行的日志信息由所述事務(wù)處理標識符和對應(yīng)所述子程序的所述程序執(zhí)行標識符共同標識。
[0035]可選的,所述子程序的執(zhí)行需要調(diào)用下一級特定業(yè)務(wù);
[0036]相應(yīng)的,所述子程序執(zhí)行子單元包括:
[0037]請求子單元,用于向執(zhí)行所述下一級特定業(yè)務(wù)的系統(tǒng)發(fā)送對應(yīng)所述下一級特定業(yè)務(wù)的業(yè)務(wù)處理請求;所述下一級業(yè)務(wù)處理請求包括對應(yīng)所述子程序的所述程序執(zhí)行標識符。
[0038]可選的,還包括:
[0039]驗證單元,用于驗證所述調(diào)用方是否有權(quán)請求所述特定業(yè)務(wù)。
[0040]此外,本申請還提供一種業(yè)務(wù)處理的請求方法,包括:
[0041]為發(fā)送業(yè)務(wù)處理請求的程序生成程序執(zhí)行標識符;
[0042]向執(zhí)行第一特定業(yè)務(wù)的系統(tǒng)發(fā)送對應(yīng)所述第一特定業(yè)務(wù)的所述業(yè)務(wù)處理請求;所述業(yè)務(wù)處理請求包括所述程序執(zhí)行標識符。
[0043]可選的,所述程序執(zhí)行標識符根據(jù)其對應(yīng)的程序的程序名和所述程序執(zhí)行標識符的生成時間生成。
[0044]可選的,發(fā)送所述業(yè)務(wù)處理請求的程序所屬的特定業(yè)務(wù)為第二特定業(yè)務(wù),所述方法還包括:
[0045]接收上一級調(diào)用方發(fā)送的對應(yīng)所述第二特定業(yè)務(wù)的業(yè)務(wù)處理請求;
[0046]若所述對應(yīng)所述第二特定業(yè)務(wù)的業(yè)務(wù)處理請求中既未包括所述上一級調(diào)用方預(yù)先生成的程序執(zhí)行標識符,也未包括所述上一級調(diào)用方預(yù)先生成的事務(wù)處理標識符,則為所述第二特定業(yè)務(wù)的執(zhí)行生成對應(yīng)所述第二特定業(yè)務(wù)的事務(wù)處理標識符;
[0047]根據(jù)所述對應(yīng)所述第二特定業(yè)務(wù)的業(yè)務(wù)處理請求執(zhí)行所述第二特定業(yè)務(wù),并對應(yīng)所述第二特定業(yè)務(wù)的本次執(zhí)行產(chǎn)生業(yè)務(wù)處理日志信息;所述業(yè)務(wù)處理日志信息由所述對應(yīng)所述第二特定業(yè)務(wù)的事務(wù)處理標識符標識。
[0048]可選的,所述對應(yīng)所述第二特定業(yè)務(wù)的事務(wù)處理標識符根據(jù)所述上一級調(diào)用方的IP地址、所述對應(yīng)所述第二特定業(yè)務(wù)的事務(wù)處理標識符的生成時間以及所述對應(yīng)所述第二特定業(yè)務(wù)的業(yè)務(wù)處理請求的標識符的至少一者生成。
[0049]可選的,所述第一特定業(yè)務(wù)包括WebService應(yīng)用程序。
[0050]可選的,所述業(yè)務(wù)處理請求包括的所述程序執(zhí)行標識符存儲在SOAP頭文件中。
[0051]相應(yīng)的,本申請還提供一種業(yè)務(wù)處理的請求裝置,包括:
[0052]第一生成單元,用于為發(fā)送業(yè)務(wù)處理請求的程序生成程序執(zhí)行標識符;
[0053]發(fā)送單元,用于向執(zhí)行第一特定業(yè)務(wù)的系統(tǒng)發(fā)送對應(yīng)所述第一特定業(yè)務(wù)的所述業(yè)務(wù)處理請求;所述業(yè)務(wù)處理請求包括所述程序執(zhí)行標識符。
[0054]可選的,發(fā)送所述業(yè)