카프카 프로듀서 생성
카프카 프로듀서 생성 주제의 핵심 개념과 적용 포인트를 정리합니다.
카프카 프로듀서 생성
Producer 생성 기본 구조
Kafka Producer는 설정(Properties)과 타입 정보를 기반으로 생성한다.
1
2
3
4
5
6
7
Properties props = new Properties();
props.put("bootstrap.servers", "localhost:9092");
props.put("key.serializer", "io.confluent.kafka.serializers.KafkaAvroSerializer");
props.put("value.serializer", "io.confluent.kafka.serializers.KafkaAvroSerializer");
Producer<String, String> producer = new KafkaProducer<String, String>(props);
생성 자체는 단순하지만, 어떤 직렬화 방식을 선택하느냐에 따라 운영 안정성이 크게 달라진다.
필수 속성 3가지
bootstrap.servers- 프로듀서가 클러스터에 최초 연결할 때 사용할 브로커 목록이다.
- 모든 브로커를 넣을 필요는 없지만, 장애 대비를 위해 2개 이상 지정하는 편이 안전하다.
key.serializer- key를 바이트 배열로 변환하는 직렬화 클래스다.
- key는 파티션 분배와 순서 보장 범위에 직접 영향을 준다.
value.serializer- value를 바이트 배열로 변환하는 직렬화 클래스다.
- 데이터 포맷(JSON/Avro/Protobuf 등) 선택은 컨슈머 호환성과 유지보수성에 직결된다.
실무 포인트
- 로컬 개발에서는 String 직렬화를 쉽게 시작할 수 있지만, 운영 데이터가 커지면 스키마 기반 직렬화(예: Avro)로 넘어가는 경우가 많다.
- 프로듀서 설정은 생성 시점 실수보다 “장기 호환성” 관점에서 검토하는 것이 좋다.
This post is licensed under CC BY 4.0 by the author.