2016-11-02 6 views
0

카프카 복제 디자인 위키 (https://cwiki.apache.org/confluence/display/KAFKA/Kafka+Replication)는 카프카 플러시 오프셋을 HW 및 LEO보다 별도의 오프셋으로 언급합니다. 위키 설명카프카 복제 플러시 된 오프셋 세부 정보

Data before the flushed offset is guaranteed to be persisted on disks 

위키에는이 오프셋과 다른 기사에서도 온라인으로 더 자세한 정보가 없습니다. 이것에 대한 자세한 내용은 감사하겠습니다.

답변

0

제 생각에는 HW가 플러시 된 오프셋과 직접적인 관계가 없어야합니다. 플래시 된 오프셋은 Linux의 기본 다시 쓰기 전략으로 인해 디스크에 저장되기 전에 데이터가 저장되지 않는 지점이어야합니다.

파티션 커밋 로그에 메시지가 10 개 있다고 가정 해보십시오. 이 10 개의 메시지가 모두 복제되기 때문에 HW가 10이됩니다. 나중에 제작자는 또 다른 5 개의 메시지를 전달합니다. LEO (로그 종료 오프셋)는 15이지만 HW는 새롭게 생성 된 5 개의 메시지가 모든 팔로어에 의해 완전히 복제되지 않기 때문에 여전히 10입니다. 그러나이 커밋 로그는 여전히 pagecache에 저장되어 있으므로 기본 쓰기 저장으로 인해 커널이 디스크로 모든 메시지를 플러시하지 않았을 가능성이 높습니다. 따라서 플러시 된 오프셋은 HW 이전 또는 이후 일 수 있습니다.

+0

위의 예에서 플러시 된 오프셋이 10이고 LEO가 15이고 동기화 된 복제본이 ack 5 메시지 만 갖고 있으므로 HW가 15로 향상되었다고 (클라이언트가 다음과 같이 글쎄) 리더 노드를 풀면 우리는 여전히 내구성을 유지하면서 슬레이브 노드에 메시지 복제본을 갖게 될 것입니다. 이것은 올바른 @amethystic 소리 – Yatin