zhangshaohan
V2EX  ›  数据库

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

  •  
  •   zhangshaohan · Sep 15, 2021 · 3234 views
    This topic created in 1881 days ago, the information mentioned may be changed or developed.

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

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

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

    13 replies  •  2021-09-16 19:18:16 +08:00
    Morriaty
    Morriaty
    Sep 15, 2021❤️1
    1
    where update_time >= xxxx 呗
    Kymair
    Kymair
    Sep 15, 2021
    2
    还是订阅 binlog 比较靠谱。

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


    https://github.com/shyiko/mysql-binlog-connector-java
    beginor
    beginor
    Sep 15, 2021 via Android
    11
    做个 trigger,在 trigger 里面发 http 请求?
    azkaban
    azkaban
    Sep 15, 2021
    12
    从库 binlog,flink cdc,里面写逻辑就行了
    bthulu
    bthulu
    Sep 16, 2021
    13
    不要用 canal 啊,手写 binlog 解析器就好了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   912 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 21:16 · PVG 05:16 · LAX 13:16 · JFK 16:16
    ♥ Do have faith in what you're doing.