在并发情况下,Elasticsearc 如果保证读写一致?
1、可以通过版本号使用乐观并发控制,以确保新版本不会被旧版本覆盖,由应用层来处理具体的冲突;2、另外对于写操作,一致性级别支持quorum/one/all,默认为quorum,即只有当大多数分片可用时才允许写操作。但即使大多数可用, 也可能存在因为网络等原因导致写入副本失败,这样该副本被认为故障,分片将会在一个不同的节点上重建。3、对于读操作,可以设置replication 为sync(默认),这
·
1、可以通过版本号使用乐观并发控制,以确保新版本不会被旧版本覆盖,由应用层来处理具体的冲突;
2、另外对于写操作,一致性级别支持quorum/one/all,默认为quorum,即只有当大多数分片可用时才允许写操作。但即使大多数可用, 也可能存在因为网络等原因导致写入副本失败,这样该副本被认为故障,分片将会在一个不同的节点上重建。
3、对于读操作,可以设置replication 为sync(默认),这使得操作在主分片和副本分片都完成后才会返回;如果设置replication 为async 时,也可以通过设置搜索请求参数_preference 为primary 来查询主分片,确保文档是最新版本。
更多推荐
已为社区贡献3条内容
所有评论(0)