본문 바로가기

컨슈머4

KafkaConsumer 💡 이번 포스팅에서는 KafkaConsumer에 대해 정리해 보도록 하겠습니다. 이전에 KafkaProducer 객체를 통해 카프카 토픽에 메시지를 전송해 보았습니다. 이번에는 KafkaConsumer 객체를 통해 프로듀서가 전송한 메시지를 읽어오도록 하겠습니다. public static void main(String[] args) { String topicName = "simple-topic"; Properties props = new Properties(); props.setProperty(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, "192.168.111.133:9092"); props.setProperty(ConsumerConfig.KEY_DESERIALIZER_CLA.. 2023. 4. 17.
Consumer - 3 💡 이번 포스팅에서는 Consumer -1, Consumer - 2에 이어서 Consumer에 대해 정리해 보도록 하겠습니다. auto.offset.reset 컨슈머가 토픽에 처음 접속하여 메시지를 가져올 때 가장 오래된 처음 오프셋(earliest)부터 가져올 것인지 가장 최근인 마지막 오프셋(latest) 이후부터 가져올 것인지를 설정하는 파라미터이며, earliest와 latest가 있습니다. earliest: 처음 오프셋부터 읽음 latest: 마지막 오프셋부터 읽음 하지만 주의할 점은 컨슈머가 토픽에 처음 접속할 때 __consumer_offsets에 있는 오프셋 정보를 기반으로 메시지를 가져오기 때문에 earliest로 설정한다 해도 무조건 0번 오프셋부터 읽어 들이지는 않습니다. 그리고 컨슈.. 2023. 4. 17.
Consumer - 2 💡 이번 포스팅에서는 Consumer -1에 이어서 Consumer에 대해 정리해 보도록 하겠습니다. 컨슈머는 위와 같이 ConsumerCoordinator, ConsumerNetworkClient, Fetcher, SubscriptionState 등의 주요 내부 객체와 별도의 HeartBeat Thread를 생성합니다. 이전 포스팅에서 정리하지 않은 Fetcher, ConsumerNetworkClient, SubscriptionState에 대해서 정리해 보도록 하겠습니다. Fetcher, ConsumerClientNetwork Fetcher, ConsumerClientNetwork 객체는 브로커의 토픽 파티션에서 메시지를 Fetch 및 Poll을 수행하는 객체입니다. 위 그림들과 같이 컨슈머는 poll.. 2023. 4. 17.
Consumer - 1 💡 이번 포스팅에서는 Consumer에 대해 정리해 보도록 하겠습니다. Consumer(이하 컨슈머)는 프로듀서가 브로커에 전송한 메시지를 읽는 역할을 수행합니다. 컨슈머는 반드시 컨슈머 그룹에 속해야 하며 컨슈머 그룹 내에서 여러 개의 컨슈머들은 토픽 파티션 별로 분배됩니다. 아파치와 컨플루언트 공식 문서에서는 아래와 같이 설명하고 있습니다. 컨슈머는 오프셋 위치에서 시작하는 로그를 받는다고 합니다. 또한 오프셋 위치를 제어할 수 있기 때문에 이미 가져왔던 데이터를 다시 가져오는 것 또한 가능합니다. 이때 오프셋 위치는 __consumer_offset 토픽에 저장합니다. 📢 앞서 컨슈머가 프로듀서가 브로커에 전송한 메시지를 읽어온다고 했는데, 정확히 얘기하면 컨슈머가 subscribe(구독)하고 있는 .. 2023. 4. 16.