一 客户端
1.打开eclipse,新建maven项目(new-->other-->Maven Project-->Artifact Id设为mykafka)。
2.配置Build Path。
右击项目名mykafka-->Build Path-->Configure Buiid Path-->
把原来的JRE干掉(点击JRE System Library [J2SE-1.5]-->remove)-->
添加新的JRE(点击Add Library-->JRE System Library-->选择Execution environment:JavaSE-1.7(jre1.8.0_171)>)
3.添加如下2个依赖。
第一个:kafka-clients
<dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-clients</artifactId> <version>2.0.0</version> </dependency>
也可以到maven仓库( http://mvnrepository.com/)搜索kafka-clients找到此依赖。
将依赖复制到pom.xml中,保存。此时eclipse会自动从maven仓库下载相应jar包。
第二个:slf4j-simple
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-simple --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>1.7.25</version> </dependency>
下载完成后如下所示
4.将APP.java重命名为SimpleProducer.java。从官网拷贝示例代码,修改如下
1 package cn.test.mykafka; 2 3 import java.util.Properties; 4 5 import org.apache.kafka.clients.producer.KafkaProducer; 6 import org.apache.kafka.clients.producer.Producer; 7 import org.apache.kafka.clients.producer.ProducerRecord; 8 9 /** 10 * 简单生产者 11 * 12 */ 13 14 public class SimpleProducer { 15 16 public static void main(String[] args) { 17 18 //创建配置信息 19 Properties props = new Properties(); 20 props.put("bootstrap.servers", "192.168.42.133:9092"); //指定broker的节点和端口 21 props.put("acks", "all"); 22 props.put("retries", 0); 23 props.put("batch.size", 16384); 24 props.put("linger.ms", 1); 25 props.put("buffer.memory", 33554432); 26 props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer"); 27 props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer"); 28 29 //创建一个生产者 30 Producer<String, String> producer = new KafkaProducer<>(props); 31 32 //发送消息 33 ProducerRecord<String, String> msg = new ProducerRecord<String, String>("test-topic","hello world from win7"); 34 producer.send(msg); 35 //for (int i = 0; i < 10; i++) 36 // producer.send(new ProducerRecord<String, String>("test-topic", Integer.toString(i), Integer.toString(i))); //topic,key(非必填),value 37 38 System.out.println("over"); 39 producer.close(); 40 } 41 }