카프카에서는 파티션 단위로 분산처리를 수행한다. 이 분산 처리를 할 때 핵심적인 기능이 바로 복제(Replication)이라 볼 수 있다. 분산 처리를 할 때에는 모든 브로커에 데이터를 동일하게 보내는 것이 아니라 Master -> Slave 방향으로 데이터를 복제하는 것처럼 카프카는 리더가 팔로워에 복제를 수행하게 된다. 한마디로 Master는 Leader가 되고, Slave는 Follower로 되는 것과 같다. 위 그림처럼, 프로듀서는 리더에게 메시지(Message)를 전송하게 되고, 리더는 자신을 바라보는 팔로워에게 데이터를 복제한다. 그런데 위 그림으로만 보면 마치 복제를 할 때 토픽단위로 하는 것처럼 보이지만 사실 내부는 그리 단순하지 않는 것이 함정이다. 복제(replication) 방식 위 ..
토픽(Topic) 카프카(Kafka)는 데이터를 최종적으로 토픽(Topic)이라는 곳에 저장을 하며 데이터를 구분하기 위한 분류값 혹은 구분된 저장소라 이해하면 된다. 아파트에 있는 호별로 만들어진 우편함이라든지 이메일 주소라든지 이런 데이터를 받을 수 있는 값도 역시 카프카 관점에서는 토픽이라 볼 수 있다. 카프카는 데이터를 주고 받을 때 지정된 토픽으로 주고 받게 되며, 토픽을 어떻게 설계할 것인지가 핵심이 될 수도 있다. 파티션(Partition) 카프카의 저장소명을 토픽이라 한다면 파티션은 저장소 안에 분리되어진 공간이다. 파티션의 목적은 데이터를 더 많이 더 빨리 보내고 처리할 수 있는 것을 위해서 만들어진 것으로 파티션이 없다면 마치 1차선으로 된 도로를 달리는 것과 같지만, 파티션을 늘리고 ..