本發(fā)明專利技術(shù)公開了一種基于微服務(wù)架構(gòu)分布式操作日志實現(xiàn)系統(tǒng),所述系統(tǒng)由日志采集模塊、日志封裝模塊、日志緩存模塊、日志發(fā)送模塊、日志接收模塊、日志存儲模塊、和日志查詢模塊依次連接組成。本發(fā)明專利技術(shù)一種基于微服務(wù)架構(gòu)分布式操作日志實現(xiàn)系統(tǒng)實現(xiàn)了日志操作功能的抽象與剝離,通過組件的方式統(tǒng)一維護,方便且易于擴展;減少了工程的冗余代碼,將操作日志的處理,從業(yè)務(wù)中解放出來,方便代碼維護。
A distributed operation log implementation system based on microservice architecture
【技術(shù)實現(xiàn)步驟摘要】
一種基于微服務(wù)架構(gòu)分布式操作日志實現(xiàn)系統(tǒng)
本專利技術(shù)屬于計算機
,涉及一種基于微服務(wù)架構(gòu)分布式操作日志實現(xiàn)系統(tǒng)。
技術(shù)介紹
操作日志不同于系統(tǒng)日志,操作日志面向的是運營人員,記錄的內(nèi)容主要是WEB端的操作記錄,為系統(tǒng)運維提供管理依據(jù)。當(dāng)前微服務(wù)架構(gòu)下開發(fā)的工程數(shù)量成倍增長,操作日志的記錄操作又分散在各項目中,如何將操作日志能力進行抽象提煉,優(yōu)化操作日志編寫習(xí)慣,方便操作日志記錄與收集,提供公共API接口能力,減小代碼耦合,提高接口的可靠性與性能等問題成為焦點。目前項目中的操作日志代碼相互獨立,數(shù)據(jù)模型不統(tǒng)一,數(shù)據(jù)存儲結(jié)構(gòu)不統(tǒng)一,代碼冗余,沒有固定的日志模板,日志存儲代碼與業(yè)務(wù)代碼串行工作,相互影響,并影響接口性能。因此,需要提供一種一種基于微服務(wù)架構(gòu)分布式操作日志實現(xiàn)系統(tǒng)。
技術(shù)實現(xiàn)思路
為了克服現(xiàn)有技術(shù)中的缺陷,提供一種基于微服務(wù)架構(gòu)分布式操作日志實現(xiàn)系統(tǒng)及方法。本專利技術(shù)通過下述方案實現(xiàn):一種基于微服務(wù)架構(gòu)分布式操作日志實現(xiàn)系統(tǒng),所述系統(tǒng)包括:日志采集模塊,用于采集和抓取客戶端的日志信息;日志封裝模塊,用于將所述日志采集模塊采集的碎片化日志信息,按照日志模板封裝成統(tǒng)一操作日志;日志緩存模塊,用于將所述操作日志進行緩存,等待操作日志發(fā)送;日志發(fā)送模塊,用于將所述日志緩存模塊緩存的操作日志發(fā)送給服務(wù)端;日志接收模塊,用于接收客戶端的操作日志;日志存儲模塊,用于對所述日志接收模塊接收到的操作日志進行保存;日志查詢模塊,用于向客戶端提供查詢操作日志,并導(dǎo)出操作日志記錄。所述日志采集模塊安裝于客戶端,所述日志采集模塊采集的日志信息包括操作模塊、操作類型、執(zhí)行結(jié)果、標(biāo)題和操作數(shù)據(jù)中的一種或數(shù)種。所述日志封裝模塊通過客戶端攜帶的賬號信息查找與所述賬號信息對應(yīng)的日志信息。所述日志模板實現(xiàn)固定參數(shù)信息的串連拼接。所述日志緩存模塊用于針對所述日志封裝模塊生成的操作日志,按照生成時間緩存。所述日志發(fā)送模塊將所述日志緩存模塊緩存的操作日志初始化異步線程池,循環(huán)獲取日志消息進行異步發(fā)送操作日志到服務(wù)端。所述日志接收模塊通過搭建操作日志服務(wù)端集群環(huán)境,統(tǒng)一接收指定客戶端的日志消息。所述日志存儲模塊使用雪花算法生成操作日志的ID,并將操作日志記錄保存到數(shù)據(jù)庫中。所述日志查詢模塊通過服務(wù)端提供日志管理后臺頁面,按時間、模塊、類型、操作人員等維度導(dǎo)出操作日志。本專利技術(shù)方法的有益效果為:本專利技術(shù)一種基于微服務(wù)架構(gòu)分布式操作日志實現(xiàn)系統(tǒng)實現(xiàn)了日志操作功能的抽象與剝離,通過組件的方式統(tǒng)一維護,方便且易于擴展;減少了工程的冗余代碼,將操作日志的處理,從業(yè)務(wù)中解放出來,方便代碼維護;采用了異步消息中間件,減少系統(tǒng)開銷,提高了接口響應(yīng)性能;操作日志的文本內(nèi)容統(tǒng)一規(guī)范,統(tǒng)一約束定義,并可統(tǒng)一更換日志模板;操作日志保存結(jié)構(gòu)統(tǒng)一,利于日志的存儲與統(tǒng)計,數(shù)據(jù)庫類型也可動態(tài)切換,業(yè)務(wù)系統(tǒng)無感知;提供了統(tǒng)一的日志管理后臺與API,并提供導(dǎo)出能力,方便日志管理,以及第三方數(shù)據(jù)查詢。附圖說明圖1為本專利技術(shù)一種基于微服務(wù)架構(gòu)分布式操作日志實現(xiàn)系統(tǒng)的流程框圖;圖2為本專利技術(shù)一種基于微服務(wù)架構(gòu)分布式操作日志實現(xiàn)系統(tǒng)中日志采集模塊的流程框圖;圖3為本專利技術(shù)一種基于微服務(wù)架構(gòu)分布式操作日志實現(xiàn)系統(tǒng)中日志封裝模塊的流程框圖。具體實施方式下面結(jié)合具體實施例對本專利技術(shù)進一步說明:如圖1所示,一種基于微服務(wù)架構(gòu)分布式操作日志實現(xiàn)系統(tǒng),所述系統(tǒng)包括:日志采集模塊,用于采集和抓取客戶端的日志信息;日志封裝模塊,用于將所述日志采集模塊采集的碎片化日志信息,按照日志模板封裝成統(tǒng)一操作日志;日志緩存模塊,用于將所述操作日志進行緩存,等待操作日志發(fā)送;日志發(fā)送模塊,用于將所述日志緩存模塊緩存的操作日志發(fā)送給服務(wù)端;日志接收模塊,用于接收客戶端的操作日志;日志存儲模塊,用于對所述日志接收模塊接收到的操作日志進行保存;日志查詢模塊,用于向客戶端提供查詢操作日志,并導(dǎo)出操作日志記錄。本專利技術(shù)系統(tǒng)由日志采集模塊、日志封裝模塊、日志緩存模塊、日志發(fā)送模塊、日志接收模塊、日志存儲模塊、和日志查詢模塊依次連接。所述日志采集模塊安裝于客戶端,所述日志采集模塊采集的日志信息包括操作模塊、操作類型、執(zhí)行結(jié)果、標(biāo)題和操作數(shù)據(jù)中的一種或數(shù)種。如圖2所示,日志采集模塊具體工作流程如下:(1)實現(xiàn)系統(tǒng)中日志采集模塊安裝在客戶端內(nèi)的集成日志組件通過java的jar包方式提供。(2)啟動實現(xiàn)系統(tǒng)。(3)日志組件初始化RabbitMQ消息中間件,使用RabbitMQ做為日志的收發(fā)組件,管理日志消息的發(fā)布/訂閱。(4)實現(xiàn)系統(tǒng)在完成業(yè)務(wù)操作后,調(diào)用日志組件API,進行日志記錄操作。API提供了業(yè)務(wù)日志的基本抽象能力,包含:操作模塊、操作類型、執(zhí)行結(jié)果(1成功,2錯誤)、標(biāo)題(例如:新增設(shè)備)、操作數(shù)據(jù)。其中,操作模塊嚴(yán)格按照解決方案/工程類型/業(yè)務(wù)模塊進行動態(tài)擴展定義統(tǒng)一編碼,識別性高。操作類型進行枚舉值強約束,明確定義操作的類型及含義,減少研發(fā)人員的隨意定義。API調(diào)用分為兩種方式:一種是手動調(diào)用,所有業(yè)務(wù)參數(shù)均通過API接口參數(shù)進行指定,特點是靈活性高,適用于任何情況下的調(diào)用場景;一種是通過注解,在業(yè)務(wù)層類代碼中加入注解,實現(xiàn)部分日志參數(shù)通過切面統(tǒng)一獲取,特點是減少日志參數(shù)的重復(fù)配置。所述日志封裝模塊通過客戶端攜帶的賬號信息查找與所述賬號信息對應(yīng)的日志信息。所述日志模板實現(xiàn)固定參數(shù)信息的串連拼接。如圖3所示,日志封裝模塊具體工作流程如下:(1)獲取用戶信息:通過獲取HTTP請求的token信息,向用戶心發(fā)起鑒權(quán),當(dāng)鑒權(quán)成功后返回用戶的信息,進而拿到用戶的賬號信息。(2)獲取IP信息:通過HTTP請求協(xié)議,調(diào)用HttpServletRequest的API獲取對方的真實IP信息。(3)獲取系統(tǒng)信息:通過讀取配置文件方式獲取當(dāng)前工程的系統(tǒng)名稱。(4)獲取模塊:通過參數(shù)獲取或通過注解獲取。(5)操作類型:通過參數(shù)獲取或通過注解獲取。(6)獲取請求URL:調(diào)用HttpServletRequest的API獲取。(7)獲取方法:通過JAVA反射獲取方法信息。(8)調(diào)用日志模板:日志模板實現(xiàn)固定參數(shù)信息的串連拼接。針對不同的操作對象封裝出不同的日志詳情。當(dāng)日志參數(shù)為單條記錄的修改,則調(diào)用單記錄模板封裝;對批量修改,則調(diào)用多記錄模板循環(huán)拼裝。所述日志緩存模塊用于針對所述日志封裝模塊生成的操作日志,按照生成時間緩存。日志緩存模塊具體工作流程如下:(1)消息隊列采用Java先入先出(FIFO)隊列,對日志消息進行緩存消峰處理。(2)判斷當(dāng)前RabbitMQ連接可用則檢查是否生成日志文件,如果有生成日志文件,則優(yōu)先消費文件中的日志隊列,當(dāng)消費完成后清理文件,設(shè)置日志保存文件標(biāo)識為關(guān)。最本文檔來自技高網(wǎng)...
【技術(shù)保護點】
1.一種基于微服務(wù)架構(gòu)分布式操作日志實現(xiàn)系統(tǒng),其特征在于,所述系統(tǒng)包括:/n日志采集模塊,用于采集和抓取客戶端的日志信息;/n日志封裝模塊,用于將所述日志采集模塊采集的碎片化日志信息,按照日志模板封裝成統(tǒng)一操作日志;/n日志緩存模塊,用于將所述操作日志進行緩存,等待操作日志發(fā)送;/n日志發(fā)送模塊,用于將所述日志緩存模塊緩存的操作日志發(fā)送給服務(wù)端;/n日志接收模塊,用于接收客戶端的操作日志;/n日志存儲模塊,用于對所述日志接收模塊接收到的操作日志進行保存;/n日志查詢模塊,用于向客戶端提供查詢操作日志,并導(dǎo)出操作日志記錄。/n
【技術(shù)特征摘要】
1.一種基于微服務(wù)架構(gòu)分布式操作日志實現(xiàn)系統(tǒng),其特征在于,所述系統(tǒng)包括:
日志采集模塊,用于采集和抓取客戶端的日志信息;
日志封裝模塊,用于將所述日志采集模塊采集的碎片化日志信息,按照日志模板封裝成統(tǒng)一操作日志;
日志緩存模塊,用于將所述操作日志進行緩存,等待操作日志發(fā)送;
日志發(fā)送模塊,用于將所述日志緩存模塊緩存的操作日志發(fā)送給服務(wù)端;
日志接收模塊,用于接收客戶端的操作日志;
日志存儲模塊,用于對所述日志接收模塊接收到的操作日志進行保存;
日志查詢模塊,用于向客戶端提供查詢操作日志,并導(dǎo)出操作日志記錄。
2.根據(jù)權(quán)利要求1所述的一種基于微服務(wù)架構(gòu)分布式操作日志實現(xiàn)系統(tǒng),其特征在于:所述日志采集模塊安裝于客戶端,所述日志采集模塊采集的日志信息包括操作模塊、操作類型、執(zhí)行結(jié)果、標(biāo)題和操作數(shù)據(jù)中的一種或數(shù)種。
3.根據(jù)權(quán)利要求1所述的一種基于微服務(wù)架構(gòu)分布式操作日志實現(xiàn)系統(tǒng),其特征在于:所述日志封裝模塊通過客戶端攜帶的賬號信息查找與所述賬號信息對應(yīng)的日志信息。
4.根據(jù)權(quán)利要求1所述的一種基于微服務(wù)架構(gòu)分...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:楊闖,
申請(專利權(quán))人:深圳市同洲電子股份有限公司,
類型:發(fā)明
國別省市:廣東;44
還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。