[java] 자바를 사용한 카프카 메시지 전송

소개

카프카(Kafka)는 대용량 실시간 데이터 스트리밍을 처리하기 위한 분산 스트리밍 플랫폼입니다. 카프카를 사용하면 대규모의 데이터를 효율적으로 처리하고 실시간으로 분석할 수 있습니다.

이번 블로그 포스트에서는 자바를 사용하여 카프카에 메시지를 전송하는 방법에 대해 알아보겠습니다.

카프카 프로듀서 생성

먼저, 카프카 프로듀서를 생성해야 합니다. 이를 위해 KafkaProducer 클래스를 사용합니다. 프로듀서를 생성할 때는 다음과 같은 설정을 지정해야 합니다.

import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.ProducerRecord;
import java.util.Properties;

public class KafkaMessageProducer {
    private static final String TOPIC_NAME = "my_topic";
    private static final String BOOTSTRAP_SERVERS = "localhost:9092";

    public static void main(String[] args) {
        // Kafka 프로듀서 설정
        Properties props = new Properties();
        props.put("bootstrap.servers", BOOTSTRAP_SERVERS);
        props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
        props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");

        // Kafka 프로듀서 생성
        KafkaProducer<String, String> producer = new KafkaProducer<>(props);

        try {
            // 메시지 전송
            String key = "my_key";
            String value = "Hello, Kafka!";
            ProducerRecord<String, String> record = new ProducerRecord<>(TOPIC_NAME, key, value);
            producer.send(record);
            System.out.println("메시지 전송 성공");
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            // Kafka 프로듀서 종료
            producer.close();
        }
    }
}

위 코드에서는 KafkaProducer 객체를 생성하고, ProducerRecord를 통해 전송할 메시지를 생성한 후, send() 메서드를 호출하여 메시지를 전송합니다. 마지막으로 close() 메서드를 호출하여 프로듀서를 종료합니다.

실행

위의 예제 코드를 실행하기 전에 먼저 카프카가 실행 중인지 확인해야 합니다. 만약 카프카가 localhost의 9092 포트에서 실행 중이라면, 위 코드를 실행해 볼 수 있습니다.

프로듀서를 실행하면, 지정한 토픽(my_topic)에 메시지가 전송되고 성공 메시지가 출력됩니다.

결론

이번 블로그 포스트에서는 자바를 사용하여 카프카에 메시지를 전송하는 방법을 알아보았습니다. 카프카를 사용하면 대용량의 데이터를 신속하게 처리할 수 있으며, 자바를 통해 간편하게 카프카와 통신할 수 있습니다.

자세한 카프카 사용법에 대해서는 공식 문서를 참고하시기 바랍니다.