producer之api
1.导入依赖
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>2.5.0</version><!--根据自己版本导-->
</dependency>
2.创建topic
hdfs@hlm1:~/software/kafka$ bin/kafka-topics.sh --zookeeper 192.168.157.133:2181 --create --replication-factor 2 --partitions 2 --topic first Created topic first.
选项说明:
--topic 定义topic名
--replication-factor 定义副本数
--partitions 定义分区数
3.propducer
import java.util.Properties;
public class MyProducer {
public static void main(String[] args) {
//1. 创建kafka生产者的配置信息
Properties props = new Properties();
//1.1 指定连接的kafka集群
props.put("bootstrap.servers","192.168.157.133:9092");
//1.2 ACK应答级别
props.put("acks", "all");
//1.3 重试次数
props.put("retries", 1);
//1.4 批次大小(16k)
props.put("batch.size", 16384);
//1.5 等待时间
props.put("linger.ms", 1);
//1.6 RecordAccumulator 缓冲区大小
props.put("buffer.memory", 33554432);
//1.7 key 和 value序列化类
props.put("key.serializer",
"org.apache.kafka.common.serialization.StringSerializer");
props.put("value.serializer",
"org.apache.kafka.common.serialization.StringSerializer");
//2. 创建生产者对象
KafkaProducer<String, String> producer =
new KafkaProducer<String, String>(props);
//3.发送数据
for(int i=0;i<20;i++)
producer.send(new ProducerRecord<String, String>("first","jxlg"+i));
//4.关闭连接
producer.close();
}
}
4.consumer结果
hdfs@hlm2:~/software/kafka$ bin/kafka-console-consumer.sh --topic first --bootstrap-server 192.168.157.133:9092,192.168.157.134:9092,192.168.157.132:9092
jxlg0
jxlg1
jxlg2
jxlg3
jxlg4
jxlg5
jxlg6
jxlg7
jxlg8
jxlg9
jxlg10
jxlg11
jxlg12
jxlg13
jxlg14
jxlg15
jxlg16
jxlg17
jxlg18
jxlg19