尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
kafka-examples 手把手教程:SimpleCounter带你3步写出第一个Kafka Java生产者
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),仅供参考
RELATED

相关推荐

《我的世界》整合包一键安装与联机指南:从PCL启动器到性能优化

《我的世界》整合包一键安装与联机指南:从PCL启动器到性能优化

这次我们来看一个针对《我的世界》玩家的懒人整合包——【涟漪之篇】。这个整合包的核心价值在于,它通过 PCL 启动器,将大量经过筛选和优化的模组、光影、材质包以及前置依赖打包在一起,让你无需手动处理复杂的兼容性和安装顺序,一…

📅 2026/10/9 22:08:58
ComfyUI整合包安装指南:从环境配置到性能优化全解析

ComfyUI整合包安装指南:从环境配置到性能优化全解析

1. 先搞清楚这个整合包解决了什么,以及它到底适合谁如果你正在找 ComfyUI 的安装方法,尤其是被各种依赖、插件、模型路径和显卡兼容性问题搞得头疼,那这个由秋叶发布的整合包,最核心的价值就是把安装和基础配置的麻烦事一次性打包…

📅 2026/10/19 0:43:11
Lilo实战:用Markdown小组件与知识图谱构建个人知识网络

Lilo实战:用Markdown小组件与知识图谱构建个人知识网络

最近在整理个人知识库时,发现市面上的笔记工具要么功能臃肿,要么过于简单,难以在碎片化记录和结构化思考之间找到平衡。直到我遇到了 Lilo —— 一个极简的 Markdown 笔记小组件,它巧妙地集成了知识图谱功能,让零散的…

📅 2026/10/12 8:22:15
MORE NEWS

更多资讯

📰

知识工作插件化:构建可编程、可组合的智能工作流底座

1. 项目概述:这不是一个插件,而是一套知识工作者的“操作系统增强层”“knowledge-work-plugins”这个标题乍看像某个开源仓库的命名,但拆开来看——knowledge work(知识工作)、plugins(插件)—…

📰

SQL题目面试避坑指南:从读题拆解到查询优化全链路

写SQL题目刷了几年,也帮不少同学备过面试、带过新人,我最大的感受是:多数人不是不会写SQL,而是根本不知道一道SQL题目到底在考察什么。同一个查询,有人三行搞定,有人磨叽半小时还漏了边界;同一张…

📰

知识工作插件:面向知识工作者的模块化增强协议

1. 项目概述:这不是一个插件,而是一套知识工作者的“操作系统增强层”“knowledge-work-plugins”——光看这个名字,很多人第一反应是“又一个浏览器插件合集”或者“某款笔记软件的扩展包”。但在我过去三年深度参与多个知识管理系统的搭建与…

📰

SchoolDB四表DDL全解析:数据库设计从字段选择到约束实践

最近给团队做内部培训,我又把一套用了很多年的教学示例库脚本翻了出来——SchoolDB。场景很简单:一个学校管理系统,只有4张表:学生、教师、课程、选课。很多人觉得写DDL语句没什么技术含量,敲几行CREATE TABLE谁不会&a…

📰

订单表慢SQL优化实战:联合索引、覆盖索引与深分页方案

1. 场景回顾:慢SQL是怎么暴露出来的做订单系统的同学应该都有体会:订单表往往是整个业务库里面数据量增长最快、查询模式最多样、索引也最容易“被用坏”的一张表。这个实战项目来自某电商平台的中台订单模块,核心表trade_order存放全渠道的订…

📰

Python实战英雄联盟胜率预测:从数据清洗到SHAP模型解释

简介:LeaguePredictor 是一套面向电子竞技数据分析初学者与机器学习实践者的 Python 项目源码,聚焦英雄联盟比赛胜率预测这一具体场景,帮助读者理解如何把分类模型落地到真实赛事数据上。资源包共 24 个文件,以 22 个 py 脚本为主…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬