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

2021-09-15 11:45:28 +08:00
 Geekerstar

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

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

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

2048 次点击
所在节点    数据库
13 条回复
Morriaty
2021-09-15 11:48:57 +08:00
where update_time >= xxxx 呗
Kymair
2021-09-15 11:49:43 +08:00
还是订阅 binlog 比较靠谱。

https://maxwells-daemon.io/
zealinux
2021-09-15 11:57:35 +08:00
A 表新增记录后,发一条通知到 MQ 。
Java 应用订阅这个
Geekerstar
2021-09-15 12:12:43 +08:00
@Morriaty 这是个思路,谢谢
Geekerstar
2021-09-15 12:13:16 +08:00
要求是不改造原有业务
Geekerstar
2021-09-15 12:14:24 +08:00
@Kymair maxwell 这个是不是比 canal 要轻量一些呢
leorealman
2021-09-15 14:33:50 +08:00
taowen
2021-09-15 15:16:51 +08:00
xio
2021-09-15 15:22:46 +08:00
Postgres 的话可以 pg_notify 来做 pub/sub,不确定其他数据库有么有类似的功能
mmdsun
2021-09-15 19:15:14 +08:00
一个开源工具 mysql-binlog-connector-java,用来监控 binlog,Java 语言。


https://github.com/shyiko/mysql-binlog-connector-java
beginor
2021-09-15 19:29:09 +08:00
做个 trigger,在 trigger 里面发 http 请求?
azkaban
2021-09-15 20:34:08 +08:00
从库 binlog,flink cdc,里面写逻辑就行了
bthulu
2021-09-16 19:18:16 +08:00
不要用 canal 啊,手写 binlog 解析器就好了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/801986

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX