目前有个需求,需要 Java 程序中,监控到某几张表的数据变更
比如,A 表新增了一条记录,然后我这边 Java 能收到通知,有没有比较轻量级的方案呢?
目前是用的 canal 订阅 binlog 来实现的,但是遇到 canal 线上服务器 CPU 100%,而且不太稳定。
1
Morriaty 2021-09-15 11:48:57 +08:00 1
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 解析器就好了
|