ES文档的乐观锁控制

文档的乐观锁,文档数据内有很多的源数据,其中_version就是用来控制文档的乐观锁的,如果文档被删除或者修改,他的_version会累加,如果有多个线程或用户同时去更新同一个数据,ES会判断数据的版本号,如果版本号匹配,则可以更新,如果版本号不匹配,就不允许更新。

ES乐观锁的使用

当我们要使用乐观锁去控制ES数据的时候,可以使用下面的方法去实现。 使用乐观锁会涉及到两个参数,分别是: _seq_no和_primary_term, _seq_no: 类似于版本号,会像_version一样去增长 _primary_term: 表示数据在集群中的位置信息

使用方式:

请求方式 POST
请求地址 http://192.168.3.214:9200/index/_doc/1?if_seq_no=30&if_primary_term=1

ES 老的版本只使用_version 去控制锁的机制,新版本中使用_seq_no和_primary_term两个字段去控制。