Kafka 是一个高性能、高可用、高可靠的支持事件数据流的消息队列系统,是实时计算的可靠数据源。
本文给出使用 Kafka 的基本示例。关于 Kafka 的更多原理性的信息,可阅读《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 Download” 下载 zookeeper 压缩包,从 “Kafka Download” 下载 Kafka 压缩包,使用 tar xzvf xxx.tar.gz 解压即可。
启动服务
启动 Zookeeper 服务。切换到 Zookeeper 解压目录下,执行如下命令:
启动 Kafka 服务。切换到 Kafka 解压目录下,执行如下命令:
创建和查看消息主题
执行如下命令,创建了一个 order-events 的消息主题:
查看主题 order-events 的信息:
步骤一:引入 POM 依赖
步骤二:创建Kafka消息发送组件
步骤三: 创建Kafka消息消费组件
步骤四:创建消息发送者(业务),这里借用了“后端简易实验框架” 的功能。这里的消息对象可以替换成自己工程里的对象哈,稍加改动即可。
至此,就可以实现 Kafka 的消息发送和消息消费示例了。
Kafka 还可以用于可靠的数据源,为实时计算组件提供事件流,如下图所示代码:
这里还必须事先创建一个 Topic = goods-order-count 的主题:
Kafka 是一个很有潜力的用于业务系统和大数据系统的消息系统。本文给出了使用 Kafka 进行消息发送、消息消费以及事件流处理的基本示例,方便 Kafka 初学者(包括我自己)更好滴上手,进一步去探索 Kafka.
- 《Kafka权威指南》
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/java-jiao-cheng/6790.html