[Kafka] Producer에 대해서

Woong·2021년 12월 17일
0

Apache Kafka

목록 보기
4/14

Producer 의 역할

broker url bootstrap

  • producer 에서 1개 이상의 broker 에 연결한다.
  • producer 실행시 bootstrapping 하기 위한 1개 이상의 broker url 목록을 제공해야한다.

데이터 직렬화

  • kafka 에 데이터를 기록하기 위해 정렬된 바이트 시퀀스 형태로 데이터를 전송
  • 모든 메시지 데이터 객체를 바이트 배열로 직렬화
  • 응답도 브로커로부터 받은 바이트 시퀀스를 변환

topic partition 결정

  • 어떤 partition 으로 데이터가 전송되어야할지 결정하는 역할
    • caller 프로그램에 의해 정해진다면 결정하지 않고 보내기도 함
    • 그게 아닌 경우는 producer 가 메시지 partition을 선택
  • message 데이터 객체의 key 를 사용
  • 필요에 따라 사용자 정의 파티셔너 코드를 작성할 수 있음

처리 실패/재시도 기능

  • 처리 실패 응답 및 재시도 횟수는 producer 에서 제어해야한다.
  • producer API 를 통해 재시도 횟수를 설정
  • 예외 처리도 producer 앱 component를 통해 수행

batch 처리

  • producer API를 통해 비동기 모드의 사용 여부 제어
  • batch 를 통해 입출력 횟수를 줄이고, producer 메모리를 최적화
  • 처리 속도는 batch 의 메시지 수예 비례해 증가

API 버전 결정

  • leader broker 와 producer 가 지원 가능한 가장 높은 API 버전을 사용하도록 함
  • 쓰기 요청시 API 버전을 요청 안에 포함
    • 미포함시 broker 에서 거부할 수 있음

0개의 댓글