V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Geekerstar
V2EX  ›  数据库

数据库表记录变更监控方案

  •  
  •   Geekerstar · 2021-09-15 11:45:28 +08:00 · 2159 次点击
    这是一个创建于 1171 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前有个需求,需要 Java 程序中,监控到某几张表的数据变更

    比如,A 表新增了一条记录,然后我这边 Java 能收到通知,有没有比较轻量级的方案呢?

    目前是用的 canal 订阅 binlog 来实现的,但是遇到 canal 线上服务器 CPU 100%,而且不太稳定。

    13 条回复    2021-09-16 19:18:16 +08:00
    Morriaty
        1
    Morriaty  
       2021-09-15 11:48:57 +08:00   ❤️ 1
    where update_time >= xxxx 呗
    Kymair
        2
    Kymair  
       2021-09-15 11:49:43 +08:00
    还是订阅 binlog 比较靠谱。

    https://maxwells-daemon.io/
    zealinux
        3
    zealinux  
       2021-09-15 11:57:35 +08:00
    A 表新增记录后,发一条通知到 MQ 。
    Java 应用订阅这个
    Geekerstar
        4
    Geekerstar  
    OP
       2021-09-15 12:12:43 +08:00
    @Morriaty 这是个思路,谢谢
    Geekerstar
        5
    Geekerstar  
    OP
       2021-09-15 12:13:16 +08:00
    要求是不改造原有业务
    Geekerstar
        6
    Geekerstar  
    OP
       2021-09-15 12:14:24 +08:00
    @Kymair maxwell 这个是不是比 canal 要轻量一些呢
    leorealman
        7
    leorealman  
       2021-09-15 14:33:50 +08:00
    taowen
        8
    taowen  
       2021-09-15 15:16:51 +08:00
    xio
        9
    xio  
       2021-09-15 15:22:46 +08:00
    Postgres 的话可以 pg_notify 来做 pub/sub,不确定其他数据库有么有类似的功能
    mmdsun
        10
    mmdsun  
       2021-09-15 19:15:14 +08:00 via Android
    一个开源工具 mysql-binlog-connector-java,用来监控 binlog,Java 语言。


    https://github.com/shyiko/mysql-binlog-connector-java
    beginor
        11
    beginor  
       2021-09-15 19:29:09 +08:00 via Android
    做个 trigger,在 trigger 里面发 http 请求?
    azkaban
        12
    azkaban  
       2021-09-15 20:34:08 +08:00
    从库 binlog,flink cdc,里面写逻辑就行了
    bthulu
        13
    bthulu  
       2021-09-16 19:18:16 +08:00
    不要用 canal 啊,手写 binlog 解析器就好了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1708 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 16:45 · PVG 00:45 · LAX 08:45 · JFK 11:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.