在优锐课的java学习分享中,这个详细的教程将帮助你创建一个简单的Kafka生产者,该生产者可将记录发布到Kafka集群。
在本教程中,我们将创建一个简单的Java示例,该示例创建一个Kafka生产者。 你创建一个名为my-example-topic的新复制的Kafka主题,然后创建一个使用该主题发送记录的Kafka生产者。将向Kafka制作人发送记录。同步发送记录,稍后,你将异步发送记录。
在你开始前
本教程的前提条件是命令行中的Kafka以及Kafka群集和故障转移基础知识。
本教程是系列教程的一部分。 如果不确定什么是卡夫卡,则应从什么开始。 如果你不熟悉Kafka的体系结构,那么建议你阅读Kafka Architecture,Kafka Topics Architecture,Kafka Producer Architecture和Kafka Consumer Architecture。
创建复制的Kafka主题
#!/usr/bin/env bash
cd ~/kafka-training
## Create topics
kafka/bin/kafka-topics.sh --create \
--replication-factor 3 \
--partitions 13 \
--topic my-example-topic \
--zookeeper localhost:2181
## List created topics
kafka/bin/kafka-topics.sh --list \
--zookeeper localhost:2181
在上面,我们创建了一个名为my-example-topic的主题,具有13个分区和3的复制因子。然后列出了Kafka主题。
如下运行create-topic.sh。
运行create-topic.sh的输出
~/kafka-training/lab3
$ ./create-topic.sh
Created topic "my-example-topic".
__consumer_offsets
my-example-topic
my-failsafe-topic
Gradle构建脚本
在此示例中,我们使用gradle构建项目。
〜/ kafka-training / lab3 / solution / build.gradle
group 'cloudurable-kafka'
version '1.0-SNAPSHOT'
apply plugin: 'java'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
compile 'org.apache.kafka:kafka-clients:0.10.2.0'
compile 'ch.qos.logback:logback-classic:1.2.2'
}
请注意,我们导入了jar文件kafka-clients:0.10.2.0。 Apache Kafka使用sl4j,因此要设置日志记录,我们使用logback(ch.qos.logback:logback-classic:1.2.2)。
构造一个 Kafka 生产者Construct a Kafka
要创建Kafka生产者,你需要向其传递引导服务器列表(Kafka代理列表)。 你还将指定一个client.id来唯一标识此Producer客户端。 在此示例中,我们将发送带有ID的消息。 邮件正文是一个字符串,因此我们需要一个记录值序列化程序,因为我们将在Kafka的“记录值”字段中发送邮件正文。 消息ID(长)将作为Kafka的记录密钥发送。 你将需要指定一个密钥序列化程序和一个值序列化程序,Kafka将使用它们来将消息ID编码