内部因素:
es的一致性主要有两个方面:
- 使用lucene索引机制带来的refresh问题
- 使用分片和复制带来的副本一致性问题(consistency:one、all、quorum)
外部因素:
如果使用db跟es的同步机制的话,那么这里的同步有一定的延时,另外也有可能因为异常情况发生不一致的情况,比如事务回滚之类的。
存储系统的数据同步分成三类:一类是异步复制,比如redis;另一是中间派,比如ES/kafka 这种带有in-sync集合的;还有一种是:必须要所有副本(也许叫同步复制吧)都写入成功,才能返回写成功ACK给client的。对于ES来说,同步给所有副本,那么如果有一个副本挂了,这个document也是可以写入成功的,所以我就说成同步给”in-sync集合”里面的副本。我觉得你的理解也可以,我给出的参考链接中也有描述,知道这种过程就好啦。
