参考答案
在并发情况下,Elasticsearch 可以通过以下方式,来保证读写的一致。
1、通过版本号使用乐观并发控制
以确保新版本不会被旧版本覆盖,由应用层来处理具体的冲突;
2、对于写操作
一致性级别支持 quorum/one/all,默认为 quorum,即只有当大多数分片可用时才允许写操作。
但即使大多数可用,也可能存在因为网络等原因,导致写入副本失败,这样该副本被认为故障,分片将会在一个不同的节点上重建。
3、对于读操作
可以设置 replication 为 sync(默认),这使得操作在主分片和副本分片都完成后才会返回。
如果设置 replication 为 async 时,也可以通过设置搜索请求参数_preference 为 primary 来查询主分片,确保文档是最新版本。
以上,是 Elasticsearch 搜索面试题【在并发情况下,Elasticsearch 如果保证读写一致?】的参考答案。
输出,是最好的学习方法。
欢迎在评论区留下你的问题、笔记或知识点补充~
—end—