Kafka

Kafka Producer를 생성하여 Message를 보내보자! (Java)

케키키케 2020. 7. 19. 14:50

 

먼저, 지난 글에서 IntelliJ에 Kafka 개발 환경을 구축했다.

오늘은 Kafka Producer를 생성하여 새로운 Message를 보내보겠다.

 

 

 

 

 

이제 새로운 Class를 만들어보자.

나는 MyKafkaProducer Class를 생성했다.

 

 

 

 

 

 

 

다음으로, 코드를 짜보자.

나는 '카프카, 데이터플랫폼의 최강자-실시간 비동기 스트리밍 솔루션 Kafka의 기본부터 확장 응용까지' 라는 책을 참고했다.

 

import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.Producer;
import org.apache.kafka.clients.producer.ProducerRecord;

import java.util.Properties;

public class MyKafkaProducer {
    public static void main(String[] args){
        Properties props = new Properties();
        //브로커 리스트를 지정하는데, 나는 로컬환경에 카프카를 구축했고, 1대의 장비이기 때문에 다음과 같이 작성했다.
        props.put("bootstrap.servers", "localhost:9092");
        //Message의 Key와 value모두 String을 사용할 것이므로, StringSerializer를 지정했다.
        props.put("key.serializer","org.apache.kafka.common.serialization.StringSerializer");
        props.put("value.serializer","org.apache.kafka.common.serialization.StringSerializer");
        //Properties 오브젝트를 전달하여 새로운 Producer를 생성한다.
        Producer<String, String> producer = new KafkaProducer<>(props);
        //생성한 Producer는 send함수를 이용하여 생성해둔 토픽(song-topic)으로 Message를 전달한다.
        producer.send(new ProducerRecord<String, String>("song-topic", "hehe java test!"));
        producer.close();

    }
}

 

 

 

 

위 코드를 실행하면, Kafka에 다음과 같은 로그가 추가된 것을 확인할 수 있다.

 

 

 

Message를 발행했으니, 다음 글에서는 Consumer를 생성하여 Message를 수신해보자!