kafka消息中间件Java API调用
参考: https://www.orchome.com/451Kafka集群的安装见上文本文介绍使用Java API通过kafka发送和接收消息。1. kafka客户端依赖dependency groupIdorg.apache.kafka/groupId artifactIdkafka_2.11/artifactId version1.0.1/version /dependency dependency groupIdorg.apache.kafka/groupId artifactIdkafka-clients/artifactId version1.0.1/version /dependency2 Kafka消息生产者APIpackage kafka; import java.util.Properties; import org.apache.kafka.clients.producer.KafkaProducer; import org.apache.kafka.clients.producer.Producer; import org.apache.kafka.clients.producer.ProducerRecord; public class ProducerDemo { private static final String MY_TOPIC my-topic; public static void main(String[] args) { Properties properties new Properties(); // Kafka 服务器地址 properties.put(bootstrap.servers, 127.0.0.1:9092,127.0.0.1:9093); // 消息应答机制 properties.put(acks, all); // 如果请求失败生产者会自动重试我们指定是0次如果启用重试则会有重复消息的可能性 properties.put(retries, 0); properties.put(batch.size, 16384); // 默认缓冲可立即发送即便缓冲空间还没有满但是如果你想减少请求的数量可以设置linger.ms大于0 properties.put(linger.ms, 1); // 控制生产者可用的缓存总量如果消息发送速度比其传输到服务器的快将会耗尽这个缓存空间 properties.put(buffer.memory, 33554432); // 消息序列化和反序列化方法 properties.put(key.serializer, org.apache.kafka.common.serialization.StringSerializer); properties.put(value.serializer, org.apache.kafka.common.serialization.StringSerializer); // 创建并发送消息 try (ProducerString, String producer new KafkaProducer(properties)) { for (int i 0; i 100; i) { String msg Message-index- i; producer.send(new ProducerRecord(MY_TOPIC, msg)); System.out.println(Sent: msg); } } } }消息发送结果:3. Kafka消息消费者APIpackage kafka; import org.apache.kafka.clients.consumer.ConsumerRecord; import org.apache.kafka.clients.consumer.ConsumerRecords; import org.apache.kafka.clients.consumer.KafkaConsumer; import java.util.Collections; import java.util.Properties; public class ConsumerDemo { private static final String MY_TOPIC my-topic; public static void main(String[] args) { Properties properties new Properties(); // kafka 服务器地址 properties.put(bootstrap.servers, 127.0.0.1:9092); // 当前消费者所在的consumer group properties.put(group.id, group-1); // 消息消费后自动提交也可改为手动提交 properties.put(enable.auto.commit, true); // 自动提交间隔时间 properties.put(auto.commit.interval.ms, 1000); properties.put(auto.offset.reset, earliest); // 停止心跳的时间超过session.timeout.ms,那么就会认为是故障的它的分区将被分配到别的进程 properties.put(session.timeout.ms, 30000); // 消息序列化和反序列化方法 properties.put(key.deserializer, org.apache.kafka.common.serialization.StringDeserializer); properties.put(value.deserializer, org.apache.kafka.common.serialization.StringDeserializer); // 订阅 my-topic 主题的消息 KafkaConsumerString, String consumer new KafkaConsumer(properties); consumer.subscribe(Collections.singletonList(MY_TOPIC)); // 不停的获取消息并消费 while (true) { ConsumerRecordsString, String records consumer.poll(1000); System.out.println(records count: records.count()); for (ConsumerRecordString, String record : records) { System.out.printf(offset %d, key %s, value %s, record.offset(), record.key(), record.value()); System.out.println(); } } } }消息消费的结果如下

相关新闻

使用Tampermonkey油猴子给浏览器开个挂

使用Tampermonkey油猴子给浏览器开个挂

油猴简介 一、油猴是什么 油猴(Tampermonkey)是免费的浏览器扩展和用户脚本管理器, 油猴子很特别, 它本身是一个无限手套(脚本管理器), 通过安装无限宝石(脚本), 能为我们提供超神的功能!它可以应用在多款浏览器上,比如谷歌浏览器,QQ浏览器&#xff0c…

2026/9/19 12:35:22 阅读更多 →
Linux系统构建高可用水产养殖监控集群实战

Linux系统构建高可用水产养殖监控集群实战

1. Linux系统龙虾部署:从零构建高可用集群的实战指南 在海鲜批发市场的数字化改造浪潮中,我遇到了一个有趣的挑战——如何用Linux系统构建稳定可靠的龙虾养殖环境监控平台。这个被我们戏称为"Linux系统龙虾部署"的项目,本质上是通过…

2026/9/19 12:34:41 阅读更多 →
Unity UGUI一键绑定工具:基于反射与特性的自动化UI控件绑定方案

Unity UGUI一键绑定工具:基于反射与特性的自动化UI控件绑定方案

1. 项目概述:为什么我们需要一个UI控件绑定工具? 在Unity UGUI项目的日常开发中,尤其是面对动辄几十上百个UI元素的复杂界面时,最繁琐、最机械的工作之一,就是手动将场景中的UI控件(如 Button 、 Text …

2026/9/18 10:43:05 阅读更多 →

最新新闻

S7-1200多台Modbus TCP从站轮询:连接ID重复是最隐蔽的坑

S7-1200多台Modbus TCP从站轮询:连接ID重复是最隐蔽的坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/21 1:41:54 阅读更多 →
Plotly.py 平行坐标图(Parallel Coordinates Plot)完整指南:从 px.parallel_coordinates 到 go.Parcoords

Plotly.py 平行坐标图(Parallel Coordinates Plot)完整指南:从 px.parallel_coordinates 到 go.Parcoords

数据可视化数据分析 【免费下载链接】plotly.py The interactive graphing library for Python :sparkles: 项目地址: https://gitcode.com/gh_mirrors/pl/plotly.py 点击查看 免费下载 平行坐标图(Parallel Coordinates Plot)是 Plotly.py …

2026/9/21 1:41:54 阅读更多 →
DeepSeek 学术版写理工综述,Base URL 改到 TaoToken

DeepSeek 学术版写理工综述,Base URL 改到 TaoToken

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/21 1:41:54 阅读更多 →
AI Agent 第一次交互全指南:从认知准备到上手实践

AI Agent 第一次交互全指南:从认知准备到上手实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/21 1:41:54 阅读更多 →
BrewUI:Homebrew图形化包管理利器,依赖分析与批量更新一屏搞定

BrewUI:Homebrew图形化包管理利器,依赖分析与批量更新一屏搞定

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/21 1:41:54 阅读更多 →
激光里程计+IMU融合:解决ROS小车定位漂移的实战方案

激光里程计+IMU融合:解决ROS小车定位漂移的实战方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/21 1:40:54 阅读更多 →

日新闻

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程 【免费下载链接】agentic-awesome-skills AAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and …

2026/9/21 0:00:01 阅读更多 →
gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析

gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析

gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析 【免费下载链接】gin-vue-admin 🚀ViteVue3Gin拥有AI辅助的基础开发平台,企业级业务AI开发解决方案,内置mcp辅助服务,内置skills管理,…

2026/9/21 0:00:01 阅读更多 →
Wox 全功能插件开发实战指南:基于 Python / Node.js 宿主与 WebSocket 的持久化插件体系

Wox 全功能插件开发实战指南:基于 Python / Node.js 宿主与 WebSocket 的持久化插件体系

桌面应用AI 应用插件系统 【免费下载链接】Wox A cross-platform launcher that simply works 项目地址: https://gitcode.com/gh_mirrors/wo/Wox 点击查看 免费下载 全功能插件(Full-featured Plugin)是 Wox 三类插件实现方式中能力最完整的…

2026/9/21 0:00:01 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/20 0:00:46 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/20 0:00:46 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/20 0:00:46 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/19 23:01:36 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/19 17:50:38 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/19 23:35:34 阅读更多 →