Kafka 是一个高性能、高可用、高可靠的支持事件数据流的消息队列系统,是实时计算的可靠数据源。
基本概念
- 事件(Event):包含 [key, value, timestamp, headers] ,是写入 Kafka 或从 Kafka 读取的数据对象。通常是由其它数据源或设备源触发而来;事件可以看做是消息或记录;
- 主题(Topic):将同一类事件对象组织在一起的名字空间。生产者写入指定的 Topic ,消费者订阅并从 Topic 中读取数据;
- 分区(Partition):分区是事件在主题中的存储单元。同一个主题下的所有事件会存放在多个分区里;分区可以保证 Kafka 的高可用和可伸缩性。Kafka 保证数据写入分区和从分区读取的顺序是一致的;
- 偏移量(Offset):消费者读取消息时会向 _consumer_offset 的特殊主题提交消息偏移量,便于追踪消息读取进度;如果发生分区再均衡(消费者群组中的消费者上线或下线),可以控制消息读取的不丢失和一致性;
Kafka 遵循生产者-消费者模型(P-C):
- 生产者(Producer): 往 Kafka 分区写数据的数据生产者;
- 消费者(Consumer): 从 Kafka 分区读取数据的数据消费者;消费者通常会处于某个消费者群组里。
流程图
Kafka 生产者写入示意图:

Kafka 消费者读取示意图:

Zookeeper 和 Kafka
启动服务
启动 Zookeeper 服务。切换到 Zookeeper 解压目录下,执行如下命令:
启动 Kafka 服务。切换到 Kafka 解压目录下,执行如下命令:
创建和查看消息主题
执行如下命令,创建了一个 order-events 的消息主题:
查看主题 order-events 的信息:
步骤一:引入 POM 依赖
步骤二:创建Kafka消息发送组件
步骤三: 创建Kafka消息消费组件
步骤四:创建消息发送者(业务),这里借用了“后端简易实验框架” 的功能。这里的消息对象可以替换成自己工程里的对象哈,稍加改动即可。
Kafka 还可以用于可靠的数据源,为实时计算组件提供事件流,如下图所示代码:
这里还必须事先创建一个 Topic = goods-order-count 的主题:
- 《Kafka权威指南》
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/h6javajc/15445.html