Kafka 컨슈머 주요 옵션

1 minute read

필수 옵션

  • bootstrap.servers : 프로듀서가 데이터를 전송할 대상 카프카 클러스터에 속한 브로커의 호스트 이름:포트를 1개 이상 작성한다. 2개 이상 브로커 정보를 입력하여 일부 브로커에 이슈가 발생하더라도 접속하는데에 이슈가 없더록 설정 가능하다.
  • key.deserializer : 레코드의 메세지 키를 역직렬화하는 클래스를 지정한다.
  • value.deserializer : 레코드의 메세지 값을 역직렬화하는 클래스를 지정한다.

선택 옵션

  • group.id : 컨슈머 그룹 아이디를 지정한다. subscribe() 메서드로 토픽을 구독하여 사용할 때는 이 옵션을 필수로 넣어야 한다. ( 기본값 : null )
  • auto.offset.reset : 컨슈머 그룹이 특정 파티션을 읽을 때 저장된 컨슈머 오프셋이 없는 경우 어느 오프셋부터 읽을지 선택하는 옵션이다. 이미 컨슈머 오프셋이 있다면 이 옵션값은 무시된다. ( 기본값 : latest )
    • latest : 설정하면 가장 높은(가장 최근에 넣은) 오프셋부터 읽기 시작한다.
    • earlist : 설정하면 가장 낮은(가장 오래전에 넣은) 오프셋부터 읽기 시작한다.
    • none : 설정하면 컨슈머 그룹이 커밋한 기록이 있는지 찾아본다. 만약 커밋 기록이 없으면 오류를 반환하고, 커밋 기록이 있다면 기존 커밋 기록 이후 오프셋부터 읽기 시작한다.
  • enable.auto.commit : 자동 커밋으로 할지 수동 커밋으로 할지 선택하는 옵션이다. (기본값 : true )
  • auto.commit.interval.ms : 자동 커밋일 경우 오프셋 커밋 간격을 지정한다. ( 기본값 : 5,000[5초] )
  • max.poll.records.poll : poll() 메서드를 통해 반환되는 레코드 갯수를 지정한다. ( 기본값 : 500 )
  • session.timeout.ms : 컨슈머가 브로커와 연결이 끊기는 최대 시간이다. ( 기본값 : 10,000[10초] )
    • 네트워크 지연이 자주 발생하지 않거나 크지 않다면 기본값으로 이용하거나 그보다 조금 더 작은 값으로 설정해서 운영해도 큰 무리가 없다.
  • heartbeat.interval.ms : 하트비트를 전송하는 시간 간격이다. ( 기본값 : 3,000[3초] )
  • max.poll.interval.ms : poll() 메서드를 호출하는 간격의 최대 시간. ( 기본값 : 300,000[5분] )
    • 설정된 간격을 넘어설 경우 데이터 처리에 문제가 있다고 판단하고 리밸런싱을 진행하게 된다.
  • isolation.level : 트랜잭션 프로듀서가 레코드를 트랙잭션 단위로 보낼 경우 사용한다.
-->

Categories:

Updated:

Comments