V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
KouShuiYu
V2EX  ›  问与答

我需要给系统加个日志,主要包括用户创建,删除,修改前的信息。 目前我的的做法很简单通过一个中间件拦截请求参数、和结果,把这些信息写到数据库中

  •  1
     
  •   KouShuiYu · 2020-12-07 16:39:19 +08:00 · 1259 次点击
    这是一个创建于 1431 天前的主题,其中的信息可能已经有所发展或是发生改变。
    这种方法如果是修改,还需要针对不同的接口查询旧值额外查询一遍然后对比,领导让我看看其他人是怎么做的,
    谈谈你们怎么做的!讨论一下?
    12 条回复    2020-12-07 21:42:41 +08:00
    XDJI
        1
    XDJI  
       2020-12-07 16:44:23 +08:00
    额 看了下这些修改都是数据库的吗 如果是的话像 mysql 监听 binlog 有变动发 mq 消费端做清洗或使用可以吗
    guisheng
        2
    guisheng  
       2020-12-07 16:47:51 +08:00
    同意楼上的做法,开启 binlog 根据日志去清洗成你想要的结构放入队列就好了。
    qiayue
        3
    qiayue  
       2020-12-07 16:51:15 +08:00
    日志写到数据库中,那么流量一大,你的数据库就会亚历山大
    KouShuiYu
        4
    KouShuiYu  
    OP
       2020-12-07 16:58:47 +08:00
    日志里面还需要记录 ip 和那个用户操作的的信息,用 binlog 应该不行吧,我看 binlog 描述是不包含这些信息
    KouShuiYu
        5
    KouShuiYu  
    OP
       2020-12-07 16:59:14 +08:00
    @XDJI @XDJI @guisheng @qiayue 日志里面还需要记录 ip 和那个用户操作的的信息,用 binlog 应该不行吧,我看 binlog 描述是不包含这些信息
    XDJI
        6
    XDJI  
       2020-12-07 17:04:29 +08:00
    @KouShuiYu 哦哦 那就有点像 trace 了 java 可以开 aop 记录到队列里(注意性能 比如用 Disruptor ) 然后开一个上报线程每隔 5s 进行上报 (发到 mq 或直接消费 比较偏向发 mq )。然后消费端做使用或者清洗。主要就是和服务解耦,要评估下日志量和请求量看看采用啥组件比较好
    XDJI
        7
    XDJI  
       2020-12-07 17:06:04 +08:00
    如果不想引入 mq 可以专门弄个接日志的服务去处理 然后针对不同环境配不同日志上报 ip
    Aviciii
        8
    Aviciii  
       2020-12-07 17:07:04 +08:00
    我也遇到过,要记录表单某个字段的修改历史,修改前后的信息都要记录,印象里是用了对象属性值对比去做的,比较笨
    svipchao
        9
    svipchao  
       2020-12-07 17:12:58 +08:00
    监控 SQL 语句?去除无效请求参数,只监控增删改,然后记录请求参数,这样的话就没必要记录旧值了,每次增删改都会有记录
    cheng6563
        10
    cheng6563  
       2020-12-07 17:21:59 +08:00
    就这样做没啥问题,注意一下不要因为日志表挂了导致主要业务也挂了就行了。
    tiedan
        11
    tiedan  
       2020-12-07 19:33:14 +08:00
    单独写个小系统 消费日志来做
    MaxFang
        12
    MaxFang  
       2020-12-07 21:42:41 +08:00
    简单的可以放到单独的消息里面,一个小系统来处理。这样做的好处是,多系统方便接入(不用每个系统都写一套),日志接入不侵入系统,方便后续接入其他的日志。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5587 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 06:37 · PVG 14:37 · LAX 22:37 · JFK 01:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.