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

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

  •  
  •   Geekerstar · 9 天前 · 1477 次点击

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

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

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

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

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


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