프로듀서는 메시지를 생산해서 카프카 토픽으로 메시지를 보내는 컴포넌트이다. 프로듀서와 컨슈머는 서로 분리되어 작업한다는 사실을 염두에 두고 내용을 읽어보자.

용어 정리

메세지, 레코드, 이벤트, 데이터는 모두 동일어

Record 구조

Untitled

레코드는 헤더, 키, 밸류의 구조로 이루어져있으며 헤더는 토픽, 파티션, 타임스탬프에 대한 메타데이터를 갖고있다. Key 와 Value는 비즈니스 관련 실 데이터가 적재되는 프로퍼티로 Avro, JSON등의 다양한 데이터타입을 가질 수 있다.

Kafka는 레코드를 ByteArray로 저장한다. 즉 프로듀서 내부에서 직렬화 과정이 이루어져 카프카 내부에 ByteArr형태로 저장된다.

Untitled

Produce Sample Code(Serializer)

private Properties props = new Properties();
props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "broker101:9092, broker102:9092");
props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, KafkaAvroSerializer.class);

KafkaProducer producer = new KafkaProducer(props);

레코드 프로듀싱 과정

개발자가 개입하는곳은 send()까지이다.

개발자가 개입하는곳은 send()까지이다.

Untitled