kafka101
-
[Kafka 101] 카프카 프로듀서 (Kafka Producer)개발자 라이프/카프카 2020. 3. 15. 15:45
들어가며 카프카는 메시지를 생산, 발송하는 프로듀서(Producer)와 메시지를 소비, 수신하는 컨슈머(Consumer), 그리고 프로듀서와 컨슈머 사이에서 메시지를 중개하는 브로커(Broker)로 구성됩니다. 이번 글은 메시지 흐름의 시작인 프로듀서에 대해 전반적으로 설명합니다. 카프카 프로듀서 프로듀서는 보통 카프카 프로듀서 API와 그것으로 구성된 애플리케이션을 말합니다. 그리고 프로듀서는 브로커에 특정 토픽(혹은 파티션 영역까지)을 지정하여 메시지를 전달하는 역할을 담당합니다. 프로듀서를 통해 전달되는 메시지의 구조는 다음과 같습니다. 토픽 (Topic) 토픽 중 특정 파티션 위치 (Partition) 메시지 생성 시간 (Timestamp) 메시지 키 (Key) 메시지 값 (Value) 프로듀서 ..
-
[Kafka 101] 카프카 메시지와 토픽과 파티션 (Kafka Message, Topic and Partition)개발자 라이프/카프카 2020. 2. 25. 16:03
들어가며 카프카 브로커는 프로듀서로부터 메시지를 전달받고, 다시 이를 컨슈머로 전달하는 역할을 담당합니다. 이번 글은 카프카를 통해 흘러가는 메시지에 대해 알아보고, 나아가 카프카의 요소인 토픽과 파티션에 대해 개념적으로 살펴봅니다. 카프카의 메시지 카프카의 메시지는 Key(키)와 Value(값)로 구성됩니다. 먼저, 메시지의 키는 해당 메시지가 카프카 브로커 내부에 저장될 때, 저장되는 위치와 관련된 요소입니다. 프로듀서가 메시지를 브로커로 전달할 때, 프로듀서 내부의 파티셔너(Partitioner)가 저장 위치를 결정하는데, 이때 키의 값을 이용하여 연산하고 그 결과에 따라 저장되는 위치를 결정합니다. 메시지의 값은 메시지가 전달하고자 하는 내용물을 의미합니다. 값은 단순한 문자열이 될 수도 있고, ..
-
[Kafka 101] 컨슈머 그룹 리밸런싱 (Consumer Group Rebalance)개발자 라이프/카프카 2020. 1. 14. 20:11
들어가며 카프카를 운영하다 보면 여러 상황을 맞이하게 됩니다. 특히 성능 향상을 위해 특정 토픽의 파티션 수를 증가하거나 혹은 컨슈머 그룹에 컨슈머를 추가하는 경우가 있습니다. 하지만 운영 중인 카프카에 위와 같은 작업을 아무런 인정사정없이(?) 실시하면 일시적인 메시지 처리 불가 등 예상치 못한 상황을 맞이할 수 있습니다. 이와 관련된 것이 리밸런싱(Rebalance, Rebalancing)입니다. 본 글에서는 리밸런싱에 대해 알아보고, 어떤 상황에서 발생하는 지 알아봅니다. 그리고 나아가 관련한 유의점에 대해 설명합니다. Consumer Group Rebalance 1. 리밸런싱이란? 컨슈머 그룹 내의 컨슈머들은 자신들이 읽는 파티션의 소유권을 공유합니다. 즉, 하나의 컨슈머 그룹에서 컨슈머 A가 담..