diff --git a/kafkaStudies.iml b/kafkaStudies.iml new file mode 100644 index 0000000000000000000000000000000000000000..78b2cc53b203f0b97534bb1184cdc7b474339fb4 --- /dev/null +++ b/kafkaStudies.iml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="UTF-8"?> +<module type="JAVA_MODULE" version="4" /> \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..4ebf0a440097f934a05a8d1f2dacdc52a651969e --- /dev/null +++ b/pom.xml @@ -0,0 +1,44 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <groupId>csw.kafka</groupId> + <artifactId>kafkaStudies</artifactId> + <version>1.0</version> + <!-- https://mvnrepository.com/artifact/org.apache.kafka/kafka-clients --> + + <dependencies> + <dependency> + <groupId>org.apache.kafka</groupId> + <artifactId>kafka-clients</artifactId> + <version>2.6.0</version> + </dependency> + + <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api --> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-api</artifactId> + <version>1.7.30</version> + </dependency> + + <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-simple --> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-simple</artifactId> + <version>1.7.30</version> +<!-- <scope>test</scope>--> + </dependency> + + <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind --> + <dependency> + <groupId>com.fasterxml.jackson.core</groupId> + <artifactId>jackson-databind</artifactId> + <version>2.11.3</version> + </dependency> + + </dependencies> + + +</project> \ No newline at end of file diff --git a/src/main/java/csw/kafka/study/lesson1/ProducerDemo.java b/src/main/java/csw/kafka/study/lesson1/ProducerDemo.java new file mode 100644 index 0000000000000000000000000000000000000000..82f45d0b371ffc33430499ba7bda082eea484319 --- /dev/null +++ b/src/main/java/csw/kafka/study/lesson1/ProducerDemo.java @@ -0,0 +1,32 @@ +package csw.kafka.study.lesson1; + +import org.apache.kafka.clients.producer.KafkaProducer; +import org.apache.kafka.clients.producer.ProducerConfig; +import org.apache.kafka.clients.producer.ProducerRecord; +import org.apache.kafka.common.serialization.StringSerializer; + +import java.util.Properties; + +public class ProducerDemo { + public static void main(String[] args) { + String myServer = "localhost:9092"; + + // Kafka Producer 설정 + Properties properties = new Properties(); + properties.setProperty(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, myServer); + properties.setProperty(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName()); + properties.setProperty(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName()); + // Kafka는 데이터를 바이트로 보냄 (0,1) + + // Kafka Producer Record + ProducerRecord<String, String> record = new ProducerRecord<String, String>("first-topic", "Hello World!"); + + // Kafka Producer 만들기 + KafkaProducer<String, String> producer = new KafkaProducer<String, String>(properties); + + // Consumer한테 데이터 보내기 - 비동기 + producer.send(record); + producer.flush(); + producer.close(); + } +}