目前有个需求,需要 Java 程序中,监控到某几张表的数据变更
比如,A 表新增了一条记录,然后我这边 Java 能收到通知,有没有比较轻量级的方案呢?
目前是用的 canal 订阅 binlog 来实现的,但是遇到 canal 线上服务器 CPU 100%,而且不太稳定。
|  |      1Morriaty      2021-09-15 11:48:57 +08:00  1 where update_time >= xxxx 呗 | 
|  |      2Kymair      2021-09-15 11:49:43 +08:00 | 
|      3zealinux      2021-09-15 11:57:35 +08:00 A 表新增记录后,发一条通知到 MQ 。 Java 应用订阅这个 | 
|  |      4Geekerstar OP @Morriaty 这是个思路,谢谢 | 
|  |      5Geekerstar OP 要求是不改造原有业务 | 
|  |      6Geekerstar OP @Kymair maxwell 这个是不是比 canal 要轻量一些呢 | 
|      7leorealman      2021-09-15 14:33:50 +08:00 | 
|  |      8taowen      2021-09-15 15:16:51 +08:00 | 
|  |      9xio      2021-09-15 15:22:46 +08:00 Postgres 的话可以 pg_notify 来做 pub/sub,不确定其他数据库有么有类似的功能 | 
|  |      10mmdsun      2021-09-15 19:15:14 +08:00 via Android 一个开源工具 mysql-binlog-connector-java,用来监控 binlog,Java 语言。 https://github.com/shyiko/mysql-binlog-connector-java | 
|  |      11beginor      2021-09-15 19:29:09 +08:00 via Android 做个 trigger,在 trigger 里面发 http 请求? | 
|  |      12azkaban      2021-09-15 20:34:08 +08:00 从库 binlog,flink cdc,里面写逻辑就行了 | 
|      13bthulu      2021-09-16 19:18:16 +08:00 不要用 canal 啊,手写 binlog 解析器就好了 |