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

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

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

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

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

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

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

    https://maxwells-daemon.io/
    zealinux
        3
    zealinux   12 天前
    A 表新增记录后,发一条通知到 MQ 。
    Java 应用订阅这个
    Geekerstar
        4
    Geekerstar   12 天前
    @Morriaty 这是个思路,谢谢
    Geekerstar
        5
    Geekerstar   12 天前
    要求是不改造原有业务
    Geekerstar
        6
    Geekerstar   12 天前
    @Kymair maxwell 这个是不是比 canal 要轻量一些呢
    taowen
        8
    taowen   12 天前
    xio
        9
    xio   12 天前
    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   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2820 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 17ms · UTC 10:25 · PVG 18:25 · LAX 03:25 · JFK 06:25
    ♥ Do have faith in what you're doing.