美文网首页
【es】如果不能停业务(写ES),而又存在物理删除时,该如何进行

【es】如果不能停业务(写ES),而又存在物理删除时,该如何进行

作者: Bogon | 来源:发表于2023-02-23 07:13 被阅读0次

    ES重索引(reindex)时如何不停止写入服务(业务存在少量物理删除文档操作)?

    当索引比较大,reindex操作是比较耗时的,如果不停止写入服务,这个过程会有热数据(包括文档的删除)流入老索引中,ES的索引别名在一定程度上实现零停机。

    当存在物理删除操作时(reindex无法识别已删除的文档),由于业务上实时性要求较高,如何保证重索引过程中在不停止写服务的情况下,保证新老索引间数据的一致性?
    由于我们是使用数据库的日志(如binlog、oplog)来同步数据写入到ES,除了重置日志的消费位点,重放一遍reindex期间的文档操作(但这样还是一定程度上会影响实时性),不知有没有更好的方法?

    如果不能停业务(写ES),而又存在物理删除时,该如何进行reindex?
    假设索引A中含有文档a和文档b,现在需要对索引A进行重索引(假设新索引为B,这个过程耗时30分钟),那么在开始重索引到当前时刻,如果业务上新增了文档c并删除了文档a。待reindex完成后,我们把别名从A切到B上,再根据时间字段从旧索引A中捞取最近时段的增量数据,但这样的话索引B中会有文档a、文档b和文档c。由于存在物理删除,导致重索引后出现了数据不一致。

    ES重索引(reindex)时如何不停止写入服务(业务存在少量物理删除文档操作)?
    https://elasticsearch.cn/question/4422

    相关文章

      网友评论

          本文标题:【es】如果不能停业务(写ES),而又存在物理删除时,该如何进行

          本文链接:https://www.haomeiwen.com/subject/cygvtdtx.html