분산 클러스터에서 내용을 읽는 방법을 소개 할 수 있습니까?paxos 기반 분산 클러스터에서 읽기 수행
나는 Paxos 알고리즘에 의해 일관성이 보장되는 분산 클러스터가 있음을 의미합니다.
실제 응용 프로그램에서 클라이언트는 클러스터에 작성한 내용을 어떻게 읽습니까?
예를 들어 5 서버 클러스터에서 네트워크 지연 등으로 인해 최신 데이터를 얻은 서버가 3 개이고 다른 2 개는 오래된 데이터를 가지고있을 수 있습니다.
클라이언트가 모든 노드의 과반수 이상을 읽어야한다는 의미입니까? 5 서버의 경우 최소 3 대의 서버에서 데이터를 읽은 다음 최신 버전의 데이터를 확인합니다.
그렇다면 3 권을 읽어야하므로 상당히 느립니다. 현실 세계는 어떻게 이것을 구현합니까?
클라이언트가 여러 노드에서 읽는 경우 메시지가 손실, 복제, 지연, 재정렬 될 수 있다는 사실을 처리해야합니다. 클러스터가 단지 키 - 값 저장소 (map)를 복제하고 있고 3 개의 노드에'getKey (1)'을 요청했고 복제 지연 때문에'null','10','4'라고 세 번에 세 개의 응답을 얻었을 때를 상상해보십시오 노드와 클라이언트에서 클러스터 노드로의 메시지 지연 간의 차이. 그래서 당신은 반드시 필사자의 리더 형태를 읽어야하고 그것이 주도하는 시점에서 여전히 주인임을 알기 위해 리드는 클러스터의 대다수와 메시지를 교환해야합니다. – simbo1905