0%

ES之文档乐观锁控制 if_seq_no与if_primary_term

观察操作

  • 插入新数据

    1
    2
    3
    4
    5
    6
    7
    8
    POST /my_doc/_doc
    {
    "id": 1010,
    "name": "imooc-1010",
    "desc": "imoocimooc!",
    "create_date": "2019-12-24"
    }
    # 此时 _version 为 1
  • 修改数据

    1
    2
    3
    4
    5
    6
    7
    8
    POST    /my_doc/_doc/{_id}/_update
    {
    "doc": {
    "name": "慕课"
    }
    }
    # 此时 _version 为 2
    1234567
  • 模拟两个客户端操作同一个文档数据,_version都携带为一样的数值

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    # 操作1
    POST /my_doc/_doc/{_id}/_update?if_seq_no={数值}&if_primary_term={数值}
    {
    "doc": {
    "name": "慕课1"
    }
    }

    # 操作2
    POST /my_doc/_doc/{_id}/_update?if_seq_no={数值}&if_primary_term={数值}
    {
    "doc": {
    "name": "慕课2"
    }
    }

    版本元数据