
kafka-examples 手把手教程SimpleCounter带你3步写出第一个Kafka Java生产者【免费下载链接】kafka-examplesSnippets and small examples demonstrating kafka features and configs项目地址: https://gitcode.com/gh_mirrors/kaf/kafka-examples想学会用 Java 向 Kafka 发送消息却总被一堆术语和配置劝退别担心本文推荐的 kafka-examples 开源示例项目里藏着一个堪称教科书级的入门模块SimpleCounter。它用不到 100 行代码完整演示了 Kafka Java生产者的搭建、配置与运行全过程。本教程将带你用 3 个步骤零基础跑通你的第一个 Kafka Java生产者理解同步/异步发送的区别为后续深入学习打下扎实基础。 为什么新手首选 SimpleCounterSimpleCounter 是 kafka-examples 中最适合入门的 Kafka生产者示例原因有三代码极简核心逻辑只有一个主类没有复杂的业务干扰新旧 API 对比同时提供了老版 Scala Producer 和新版 Java Producer 两种实现参数化运行通过命令行参数即可切换生产者类型、同步/异步模式学习成本极低。先看一下项目结构整个模块非常清爽SimpleCounter.java程序入口负责解析参数和调度DemoProducer.java生产者抽象接口定义 configure / start / produce / close 四个方法DemoProducerNewJava.java基于新版 KafkaProducer API 的实现DemoProducerOld.java基于老版 Scala Producer 的实现 第1步克隆项目并构建 Kafka 生产者示例打开终端先克隆 kafka-examples 项目到本地git clone https://gitcode.com/gh_mirrors/kaf/kafka-examples然后进入 SimpleCounter 模块目录使用 Maven 一键打包。项目通过 maven-shade-plugin 生成包含所有依赖的 Uber JAR省去手动管理 classpath 的烦恼配置见 pom.xmlcd SimpleCounter mvn clean package构建成功后在target/目录下会生成uber-SimpleCounter-1.0-SNAPSHOT.jar这就是我们接下来要运行的文件。⚙️ 第2步运行你的第一个 Kafka Java生产者运行前请确保本地已有可用的 Kafka 集群默认地址localhost:9092。然后执行以下命令java -cp target/uber-SimpleCounter-1.0-SNAPSHOT.jar com.shapira.examples.producer.simplecounter.SimpleCounter localhost:9092 v1 new async 500 10这条命令一共传了 6 个参数含义如下表参数示例值说明broker-listlocalhost:9092Kafka broker 地址列表topicv1要写入消息的 Topicold/newnew选择老版还是新版生产者 APIsync/asyncasync选择同步还是异步发送模式delay500每条消息之间的间隔毫秒count10要生成的数字条数运行后程序会从 0 开始循环发送 10 条数字消息到 Topicv1并在最后打印耗时统计例如Starting... ... and we are done. This took 4862 ms.完整的参数解析与发送逻辑可以参考 SimpleCounter.java。 第3步验证消息是否成功写入消息发出去之后怎么确认 Kafka生产者真的把数据送进集群了呢两种验证方式任选其一方式一用控制台消费者查看kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic v1 --from-beginning如果一切正常你会看到 0 到 9 的数字依次输出。方式二运行项目自带的消费者示例kafka-examples 中还有 SimpleMovingAvg、StreamingAvg 等多个消费者示例可以互相配合测试加深对 Kafka 收发全流程的理解。 读懂源码Kafka生产者核心配置一次搞懂作为你的第一个 Kafka Java生产者配置文件是重中之重。看 DemoProducerNewJava.java 中的这段核心配置kafkaProps.put(bootstrap.servers, brokerList); kafkaProps.put(key.serializer, org.apache.kafka.common.serialization.StringSerializer); kafkaProps.put(value.serializer, org.apache.kafka.common.serialization.StringSerializer); kafkaProps.put(acks, 1); kafkaProps.put(retries, 3); kafkaProps.put(linger.ms, 5);这里最值得记住的是三个关键配置项bootstrap.serversKafka 集群的接入地址生产者的入口大门key/value.serializer键值序列化器把 Java 对象转成字节流缺一不可acks / retries / linger.ms分别控制消息确认机制、失败重试次数和批量发送延迟直接决定发送的可靠性与性能。⚡ 进阶必懂Kafka生产者同步发送与异步发送的区别SimpleCounter 最巧妙的设计是通过一个sync/async参数让你直观对比两种发送模式实现见 DemoProducerNewJava.java同步发送调用producer.send(record).get()等服务器确认后才继续下一条。可靠性高但每条消息都要等待往返吞吐量低异步发送调用producer.send(record, callback)立刻返回配合回调函数处理异常。吞吐量高是生产环境的默认选择。运行两次相同参数、只切换sync和async对比打印出的耗时你会对异步更快有最直观的感受。 下一步从入门到进阶的学习路线跑通第一个 Kafka Java生产者只是开始kafka-examples 项目还为你准备了丰富的进阶示例想学消费者看 SimpleMovingAvg想学流处理看 KafkaStreamsAvg想学 Avro 序列化看 AvroProducerExample每个示例都遵循同样的小而美风格配合运行脚本即可快速上手。坚持动手跑通三四个示例你对 Kafka 生产者的理解就会真正破茧成蝶。现在就去 clone 项目写出你的第一个 Kafka Java生产者吧【免费下载链接】kafka-examplesSnippets and small examples demonstrating kafka features and configs项目地址: https://gitcode.com/gh_mirrors/kaf/kafka-examples创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考