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两个字段去控制。