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