[Kafka] 카프카 기초

🌟kafka 기초1

🎯 카프카란?

카프카는 실질적으론 메세지 브로커의 역할을 합니다. 이전 포스팅에서 이야기했던 pub/sub 구조를 기본으로 하여 프로듀서(pub)는 특정 토픽에 대한 메세지를 발행하며, 컨슈머(sub)는 본인이 구독한 토픽의 메세지를 받습니다.

🎯 카프카의 메세지란?

카프카의 메세지는 키와 값으로 구성되어있습니다. 키는 프로듀서 내부의 파티셔너가 키의 값을 이용하여 브로커 내의 저장위치를 결정하는데 사용됩니다. 값은 메세지가 전달하고자 하는 데이터 내용을 포함합니다. 이때 메세지 전체가 직렬화/역직렬화 과정을 거치므로 내부에 있는 데이터의 타입은 크게 영향을 주지 않습니다.

🎯 카프카의 토픽이란?

토픽은 메세지를 구분하는 논리적인 단위입니다.일종의 구분자정도로 생각하면 좋을 것 같습니다.

🎯 카프카의 파티션이란?

파티션은 브로커 내의 물리적인 단위입니다. 단어 그대로 토픽의 저장공간을 쪼개주는 것으로 생각하시면 됩니다. 파티션 내의 한칸은 로그라고 부르며, 로그 하나에 데이터가 순차적으로 추가됩니다. 그리고 이 로그의 위치는 오프셋(상대위치)으로 나타냅니다. 파티션은 주로 여러개를 두는데, 이렇게 토픽을 여러개의 파티션으로 나누면 많은 메세지가 동시에 들이닥쳐도 각 파티션이 메세지를 추가하기때문에 병렬적인 처리가 가능해집니다. 다만 하나의 파티션 내에서는 메세지가 순차적이지만, 파티션끼리는 순서가 보장되지 않으므로 순서가 중요하다면 사용을 좀더 고려해보시는 것이 좋겠습니다.

🎯 파티션의 복제

카프카는 파티션의 복제를 지원합니다. 하나의 파티션에는 1개의 리터레플리카 + 여러개의 팔로워 레플리카로 이루어집니다. 리더에서는 전반적인 읽기/쓰기를 담당하고, 팔로워에서는 복제 및 리더에게 장애가 발생할 경우 이를 승계하여 장애로 인한 피해를 예방합니다.

https://medium.com/@umanking/%EC%B9%B4%ED%94%84%EC%B9%B4%EC%97%90-%EB%8C%80%ED%95%B4%EC%84%9C-%EC%9D%B4%EC%95%BC%EA%B8%B0-%ED%95%98%EA%B8%B0%EC%A0%84%EC%97%90-%EB%A8%BC%EC%A0%80-data%EC%97%90-%EB%8C%80%ED%95%B4%EC%84%9C-%EC%9D%B4%EC%95%BC%EA%B8%B0%ED%95%B4%EB%B3%B4%EC%9E%90-d2e3ca2f3c2


Written by@이주형
平常心

GitHubFacebook