반응형

Spring Cloud Stream Kafka를 사용할 때 binder의 설정을 다음과 같이 작성하고 새로운 Consumer Group을 생성 했을 때, 기존 Topic에 있던 모든 메세지들을 가져오는 현상이 있었다.

  cloud:
    stream:
      default-binder: kafka
      kafka:
        binder:
          min-partition-count: 2
          auto-add-partitions: true
          brokers: kafka-event-dev-0.internal.smartfoodnet.io:9092,kafka-event-dev-1.internal.smartfoodnet.io:9092
          producer-properties:
            key.serializer: org.apache.kafka.common.serialization.StringSerializer
          consumer-properties:
            key.deserializer: org.apache.kafka.common.serialization.StringDeserializer
          replication-factor: 1

Cousumer Group이 새로 생성될때 마지막 Offset이후 메세지만 받고 싶다면 다음과 같이 설정한다

  cloud:
    stream:
      default-binder: kafka
      kafka:
        binder:
          min-partition-count: 2
          auto-add-partitions: true
          brokers: kafka-event-dev-0.internal.smartfoodnet.io:9092,kafka-event-dev-1.internal.smartfoodnet.io:9092
          producer-properties:
            key.serializer: org.apache.kafka.common.serialization.StringSerializer
          consumer-properties:
            key.deserializer: org.apache.kafka.common.serialization.StringDeserializer
            auto.offset.reset: latest   #여기를 추가해준다
          replication-factor: 1

신규로 생성되는 Consumer Group은 기본값이 earliest이기 때문에 모든 메세지를 받으려고 한다. 물론 모든 메세지를 받아서 처리해야하는 경우도 있지만 새로 서버를 만들면서 처음부터 가져올 필요가 없을 때 사용하면 된다.

none : Offset 정보가 없다면 Exception을 발생한다
earliest : 처음 Offset으로 설정한다
latest : 가장 마지막 Offset으로 설정한다

 

반응형

'개발' 카테고리의 다른 글

Spring Boot Tomcat, Netty 413에러 해결하기  (0) 2022.11.10
AWS 자격증명 관리(Local)  (0) 2022.11.02
Docker Compose를 사용한 Redis Commander  (0) 2022.10.13
Git 초기화  (0) 2022.07.28
Sublime Text - Format Json  (1) 2022.07.22

+ Recent posts