한다고 가정 우리가 두 개의 노드 A와 B영사 키 - 값 저장소는 두 개의 다른 키로 두 번의 쓰기를 주문할 때 어떤 보장을합니까?
우리는 노드 A에서이 두 명령을 실행
$ curl -X PUT -d one .../v1/kv/key1
$ curl -X PUT -d two .../v1/kv/key2
(
예.
PUT one key1
이 발생-이전
PUT two key2
) 다음
GET
노드 B의
/v1/kv/key2
이
two
을 반환하면
GET
이 노드 B의
/v1/kv/key1
이
one
을 반환한다고 보장합니까? 다른 말로하면, KVS 영사는 노드 A에서의 두 글 사이의 관계를 존중합니까?
영사
는 (CAP 의해 정의 됨) 일관성을 제공하는 합의 프로토콜을 사용한다.
그래,하지만 내 이해는 CAP 정리는 여러 레지스터에 대해 이야기하지 않습니다. 이 두 글은 결국 일 수 있으며 노드 B로 전파되는 것은이지만 예기치 않은 중간 상태를 결코 보지 못할 것입니다.
AFAIK 영사관은 단 하나의 뗏목 기록 만 가지고 있으므로 자원에 관계없이 항상 서로간에 순서가 정해집니다. 합의의 본질 때문에 간단히 그 글을 순서가 없게 만들려면 자신의 길을 벗어나야 만합니다. – kuujo
필요한 경우 잘 모르겠지만 영사관 0.7 (방금 릴리스 됨)에도 새로운 트랜잭션 키/값 API가 있습니다. https://github.com/hashicorp/consul/blob/master/CHANGELOG.md#070-september- 14-2016 – deniszh