consumer
-
[Spring Kafka] 컨슈밍과 관련된 구성 요소 살펴보기개발자 라이프/카프카 2021. 8. 1. 23:49
들어가며 스프링 카프카 프로젝트는 스프링 프레임워크 내에서 카프카를 더욱 손쉽게 사용할 수 있도록 지원하는 프로젝트입니다. 그래서 기존 카프카의 프로듀서, 컨슈머, 스트림 어플리케이션 구성을 스프링 프레임워크 내에서 간단하게 정의하고, 구현할 수 있도록 합니다. 이번 글은 스프링 카프카에서 컨슈밍과 관련된 구성 요소들을 간단히 살펴봅니다. 컨슈밍과 관련된 구성 요소 살펴보기 MessageListenerContainer Spring Kafka에선 MessageListenerContainer를 설정하여 컨슈머를 구성합니다. 그리고 실제 동작은 MessageListener 구현체를 MessageListenerContainer 설정에 제공하거나, 처리와 관련된 함수에 @KafkaListener 어노테이션을 붙여..
-
[Kafka 101] 카프카 컨슈머 (Kafka Consumer)개발자 라이프/카프카 2020. 4. 12. 22:28
들어가며 카프카의 메시지 파이프라인은 프로듀서에서 시작해서 브로커를 통해 컨슈머로 끝나게 됩니다. 이번 글은 카프카 메시지 파이프라인의 마지막 부분인 컨슈머에 관해 전반적으로 설명합니다. 1. 카프카 컨슈머 컨슈머는 컨슈머 API와 그것으로 구성된 애플리케이션을 말합니다. 일반적으로 컨슈머가 토픽을 구독(Subscribe) 혹은 읽는다(Read)고 하는데, 이는 컨슈머가 토픽 파티션에 저장된 메시지들을 가져오는 것을 말합니다. 카프카 컨슈머의 다음 3가지 특징을 통해 더욱 효율적이고 유연한 메시지 구독 기능을 제공합니다. Polling 구조 단일 토픽의 멀티 컨슈밍 컨슈머 그룹 Polling 구조 일반적으로 다른 메시징 큐는 메시지 큐에서 메시지를 Push 합니다. 카프카 구성 요소로 예를 들면 브로커가..
-
[Kafka 101] 컨슈머 그룹 리밸런싱 (Consumer Group Rebalance)개발자 라이프/카프카 2020. 1. 14. 20:11
들어가며 카프카를 운영하다 보면 여러 상황을 맞이하게 됩니다. 특히 성능 향상을 위해 특정 토픽의 파티션 수를 증가하거나 혹은 컨슈머 그룹에 컨슈머를 추가하는 경우가 있습니다. 하지만 운영 중인 카프카에 위와 같은 작업을 아무런 인정사정없이(?) 실시하면 일시적인 메시지 처리 불가 등 예상치 못한 상황을 맞이할 수 있습니다. 이와 관련된 것이 리밸런싱(Rebalance, Rebalancing)입니다. 본 글에서는 리밸런싱에 대해 알아보고, 어떤 상황에서 발생하는 지 알아봅니다. 그리고 나아가 관련한 유의점에 대해 설명합니다. Consumer Group Rebalance 1. 리밸런싱이란? 컨슈머 그룹 내의 컨슈머들은 자신들이 읽는 파티션의 소유권을 공유합니다. 즉, 하나의 컨슈머 그룹에서 컨슈머 A가 담..