新聞中心
針對操作日志,每個系統(tǒng)或企業(yè)經(jīng)營業(yè)務(wù)領(lǐng)域不同、負(fù)責(zé)人知識面不同、以及系統(tǒng)等級不同,要求差異也很大,那如何在服務(wù)開發(fā)過程中,根據(jù)用戶自定義的需求進(jìn)行統(tǒng)一記錄呢,本文將親身經(jīng)歷進(jìn)行講述,廢話不多說,我們開始!

我們提供的服務(wù)有:網(wǎng)站制作、成都網(wǎng)站建設(shè)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、長樂ssl等。為近1000家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的長樂網(wǎng)站制作公司
提到日志 ,作為java開發(fā)人員,第一反應(yīng)向?qū)У膽?yīng)該都是log4j、logback等技術(shù)組件,但是在微服務(wù)體系中,系統(tǒng)進(jìn)行拆分之后,形成多個模塊之后,如何用統(tǒng)一的標(biāo)準(zhǔn)進(jìn)行記錄操作日志,業(yè)界沒有統(tǒng)一的標(biāo)準(zhǔn),也沒有統(tǒng)一的組件進(jìn)行記錄,原因主要是各業(yè)務(wù)系統(tǒng)對操作日志的定義要求、定義級別不同,例如:
案例1:對用戶操作的所有記錄進(jìn)行記錄,尤其是增刪改模型實體業(yè)務(wù)數(shù)據(jù);
案例2:對用戶操作的所有記錄記錄進(jìn)行記錄,尤其是操作時機、操作結(jié)果;
方案一:業(yè)務(wù)網(wǎng)關(guān)進(jìn)行記錄。針對微服務(wù)分布式應(yīng)用,前后端交互、系統(tǒng)之間交互,都是通過業(yè)務(wù)網(wǎng)關(guān)進(jìn)行交易轉(zhuǎn)發(fā)。因此,可以在業(yè)務(wù)網(wǎng)關(guān)通過攔截器的方式進(jìn)行記錄,這種記錄只能記錄操作時間、操作人、操作類型、操作結(jié)果、入?yún)?、出參等,無法記錄數(shù)據(jù)實體模型的變化情況。這種方案的各應(yīng)用無需單獨實現(xiàn),只需要在業(yè)務(wù)網(wǎng)關(guān)進(jìn)行解析記錄即可,后期改造難度小、影響小;缺點無法記錄數(shù)據(jù)實體本身記錄,且模塊信息以及操作類型只能通過規(guī)范性進(jìn)行約束。
方案二:在業(yè)務(wù)實體變更時進(jìn)行記錄。這種記錄需要在開發(fā)時,通過監(jiān)聽數(shù)據(jù)實體模型變化進(jìn)行記錄,這需要在應(yīng)用開發(fā)時就考慮,后期改造難度大,影響大。這種方案優(yōu)點是可以記錄的很詳細(xì),包括實體模型前后變化情況等,缺點是開發(fā)需要完全按照規(guī)范進(jìn)行,并且微服務(wù)涉及多數(shù)據(jù)源或需要引入消息隊列概念,復(fù)雜度較高。
方案三:在具體操作方法時進(jìn)行記錄。這種記錄方式可以通過自定義注解的方式進(jìn)行,在注解中進(jìn)行標(biāo)記模塊信息及操作類型,然后通過AOP中解析注解中的參數(shù)進(jìn)行記錄。這種方式優(yōu)點是日志記錄模塊及操作信息是通過手工設(shè)置,針對開發(fā)人員來說簡單,缺點是微服務(wù)涉及多數(shù)據(jù)源或需要引入消息隊列概念,整體架構(gòu)較復(fù)雜。
針對三種方案,對于不同層次的實施團隊,選擇方式或許不同。其中,方案一即適用于后期補救方式記錄,也適用于統(tǒng)一入口方式記錄;方案二,適用于開發(fā)團隊技能較高,業(yè)務(wù)系統(tǒng)對操作日志要求較高的團隊;方案三,適用于傳統(tǒng)團隊轉(zhuǎn)混合團隊使用。具體使用何種方案,可以根據(jù)實際情況進(jìn)行選擇。正所謂“沒有最好的,只有最適合的”。
新聞標(biāo)題:微服務(wù)體系操作日志記錄方法
網(wǎng)站路徑:http://fisionsoft.com.cn/article/cddiodp.html


咨詢
建站咨詢
