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

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

  •  
  •   Geekerstar · 12 天前 · 1489 次点击

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

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

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

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

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


    https://github.com/shyiko/mysql-binlog-connector-java
    beginor
        11
    beginor   11 天前 via Android
    做个 trigger,在 trigger 里面发 http 请求?
    azkaban
        12
    azkaban   11 天前
    从库 binlog,flink cdc,里面写逻辑就行了
    bthulu
        13
    bthulu   10 天前
    不要用 canal 啊,手写 binlog 解析器就好了
    关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3495 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 18ms · UTC 03:48 · PVG 11:48 · LAX 20:48 · JFK 23:48
    ♥ Do have faith in what you're doing.