V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
yanshenxian
V2EX  ›  程序员

怎么监听数据库的变化来触发 Lucene 的索引更新

  •  
  •   yanshenxian · 2020 年 7 月 8 日 · 1803 次点击
    这是一个创建于 2015 天前的主题,其中的信息可能已经有所发展或是发生改变。

    没有 rabbitmq 等消息队列的情况下...

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

    给表写触发器,数据变动的时候发消息,收到消息后更新 ELK 索引
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   5407 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 01:31 · PVG 09:31 · LAX 17:31 · JFK 20:31
    ♥ Do have faith in what you're doing.