토픽과 파티션 (Topic & Partition)
카프카의 토픽은 큐가 아니라 덧붙이기만 하는 로그입니다. 토픽은 여러 파티션으로 쪼개지고, 레코드는 파티션 끝에 append 되며 그 자리에 오프셋이라는 번호가 붙습니다. 파티션이 여러 개라서 병렬로 쓰고 읽을 수 있지만, 순서가 보장되는 범위는 토픽 전체가 아니라 파티션 하나 안쪽입니다. 같은 키를 가진 레코드가 늘 같은 파티션으로 가는 이유가 여기 있습니다.
01 개념 한눈에 보기
Interactive Step-by-Step카프카의 토픽은 큐가 아니라 로그입니다. 토픽 하나가 여러 파티션으로 쪼개지고, 각 파티션은 덧붙이기만 하는 한 줄짜리 로그입니다.
02 쉽게 이해하기
For Everyone은행 창구 여러 개와 같습니다. 창구를 늘리면 처리량은 올라가지만, 줄 사이의 순서는 보장되지 않습니다. 한 사람의 거래를 순서대로 처리하려면 그 사람은 늘 같은 창구(같은 키 → 같은 파티션)로 보내야 합니다.
레코드는 파티션의 끝에만 덧붙고 중간을 수정하지 않습니다.
그래서 쓰기가 순차 디스크 접근이 되어 매우 빠릅니다.
파티션 배정은 키의 해시로 정해지고, 키가 없으면 라운드로빈으로 분산됩니다.
파티션을 늘리면 병렬성이 올라가는 대신 토픽 전체의 전역 순서는 포기하게 됩니다.
읽은 레코드는 사라지지 않고 보존 기간 동안 그대로 남아, 여러 소비자가 같은 데이터를 각자 읽습니다.
- –이벤트 스트리밍 파이프라인 설계
- –파티션 수와 병렬성·순서 보장의 트레이드오프 판단
- –키 설계로 순서가 필요한 단위 묶기
03 자주 묻는 질문
FAQ토픽과 파티션 (Topic & Partition)란 무엇인가요?+
카프카의 토픽은 큐가 아니라 덧붙이기만 하는 로그입니다. 토픽은 여러 파티션으로 쪼개지고, 레코드는 파티션 끝에 append 되며 그 자리에 오프셋이라는 번호가 붙습니다. 파티션이 여러 개라서 병렬로 쓰고 읽을 수 있지만, 순서가 보장되는 범위는 토픽 전체가 아니라 파티션 하나 안쪽입니다. 같은 키를 가진 레코드가 늘 같은 파티션으로 가는 이유가 여기 있습니다.
토픽과 파티션 (Topic & Partition)은(는) 어디에 사용하나요?+
이벤트 스트리밍 파이프라인 설계, 파티션 수와 병렬성·순서 보장의 트레이드오프 판단, 키 설계로 순서가 필요한 단위 묶기
토픽과 파티션 (Topic & Partition)를 쉽게 비유하면?+
은행 창구 여러 개와 같습니다. 창구를 늘리면 처리량은 올라가지만, 줄 사이의 순서는 보장되지 않습니다. 한 사람의 거래를 순서대로 처리하려면 그 사람은 늘 같은 창구(같은 키 → 같은 파티션)로 보내야 합니다.
