没有 rabbitmq 等消息队列的情况下...
1
liujan 2020-07-08 20:07:23 +08:00
阿里有个监听数据库变化的项目,叫:canal,你可以看下能不能满足你的需求。
|
2
yanshenxian OP @liujan canal 支持局部订阅吗 小服务可能压力有点大
|
3
liujan 2020-07-08 20:17:00 +08:00
@yanshenxian 你可以看下他们的文档,具体我也不大记得了。
|
4
henyi2211 2020-07-08 20:19:52 +08:00
查查 binlog 日志 相关资料
|
5
200ok 2020-07-08 20:25:18 +08:00
1. 楼上说的监听数据库变化
2. 你的服务轮询数据库 3. 数据库写入方在写入数据库同时给你发一份数据 4. 数据库写入方 pub 你的服务 sub 收到 pub 信号时取查一次数据库,更新 lucene 能想到的大体是这样 |
6
Cbdy 2020-07-08 20:32:14 +08:00 via Android
canal 还行
|
7
optional 2020-07-08 22:34:53 +08:00
无侵入的方法:监听 binlog (最干净),定时扫描(可以根据 updatedAt 优化)
其次应用 dual write |
8
sunxiansong 2020-07-09 16:19:09 +08:00
之前用 PG 的时候,pg 有个 listen/notify 特性,相当于监听 /通知消息队列
给表写触发器,数据变动的时候发消息,收到消息后更新 ELK 索引 |