后臺操作日志

1、背景

????????在企業(yè)級應用,我們經常需要記錄后端用戶操作各種功能的日志,方便未來發(fā)現(xiàn)業(yè)務有問題,能通過用戶操作日志追湖全流程。此外,我們還可以通過統(tǒng)計用戶操作日志,分析某些功能點擊的次數,判斯哪些功能經常使用,那些功能不經常使用其至可以下線通過這種量化的分析,對于產品未來的功能規(guī)劃也起到指導作用,所以優(yōu)雅的設計一個后臺操作日志功能,對于企業(yè)級系統(tǒng)必不可少。

2、應用場景

使用場景

1、規(guī)則類變更場景(比如活動配置規(guī)則修改)、

2、配置類變更場景(比如公共配置修改)

3、敏感信息類變更場景(比如客戶信息修改)

以上場景,如果有變更,通常會對我們系統(tǒng)的業(yè)務產生直接的影響,如果人為失誤、有可能造成直接的經濟損失,所以我們需要記錄每一筆操作日志。

設計方案注意點

1、記錄后端操作日志必須與業(yè)務功能解耦,不能硬編碼耦合在一起,增加開發(fā)人員的工作量;

2、后端操作日志必須記錄管理后臺操作的菜單、操作的功能、操作人、操作時間等重要核心的信息;

3、后端操作日志異步入庫,不能阻塞主業(yè)務流程;

4、后端操作日志重要的信息支持全模糊查詢方便管理員快速查詢信息,比如:操作內容字段;

3、實現(xiàn)方案

1、底層base公共服務提供日志相關的服務(保存日志、查詢日志)

2、通過自定義注解+AOP攔載請求,自動上報日志到base的日志服務

3、通過引入guava的eventbus異步發(fā)布事件實現(xiàn)日志的異步入mysql庫。

4、考慮到操作內容字段內容比較大,基于canal+kafka,異步將日志表記錄同步到es,通過全模糊查詢es,可快速查詢日志記錄。同時考慮到操作日志表比較大,每3個月歸檔日志表一次,保存mysql日志表查詢性能

4、架構設計

后端日志組件架構圖

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容