Apache Kafka

Kafka Topic & Partition이란?

beekei 2021. 9. 17. 11:13
반응형

Topic & Partition이란?

메세지는 토픽(Topic)으로 분류되고, 토픽(Topic)은 여러개의 파티션(Partition)으로 나눠 질 수 있다.

파티션(Partition) 내의 한 칸은 로그(Log)라고 불린다.

데이터는 한 칸의 로그에 순차적으로 append 되는데 메세지의 상대적인 위치를 나타내는게 offset이다. (0이 가장 먼저)

여러개의 파티션으로 누눠서 쓰는 이유는?

메세지는 카프카의 해당 토픽(topic)에 쓰여지는데 시간이 소비된다.

몇 천건의 메세지가 동시에 카프카에 쓰여진다고 생각해보자.

하나의 파티션(partition)에 순차적으로 append되면 처리하는게 좀 버거울 것이다.

그렇기 때문에 여러개의 파티션을 두어서 분산 저장을 하는 것이다.

그러면 병렬로 처리될테니 시간이 그만큼 절약 하게 된다.

하지만 한번 늘린 파티션은 절대로 줄일 수 없기 때문에 충분히 고민해봐야한다.

또한, 파티션을 늘렸을 때 메세지가 Round-robin방식으로 쓰여진다.

즉, 순차적으로 메세지가 쓰여지지 않기 때문에 메시지에 순서가 엄청 중요한 모델이라면 상당히 위험한 것이다.

반응형