文章目录
Kafka 101系列文章目标:整理学习Kafka的基本使用、Kafka的常用配置和Kafka的重要原理。
本文介绍如何使用Java API来消费Kafka中的数据,并分享了如何解决遇到的疑惑和总结的注意事项。
本文代码已经上传github,地址:https://github.com/iamabug/kafka-101
1. 环境说明
- MacOS/Linux + Java 8
- Kafka版本:2.3.1,已安装启动,可通过
localhost:9092
访问 - Kafka Client API版本:2.3.1
2. 核心内容
2. 1 流程说明
使用Java API消费Kafka数据的基本流程有以下几个步骤:
- 创建
KafkaConsumer
对象; - 订阅想要消费的topic;
- 进入poll循环,不断的消费并处理数据;
- 退出循环,关闭
KafkaConsumer
对象;
2.2 代码展示
一个基本的可用的代码如下,可以逐行阅读:
public static void main(String[] args) {
// 1. 创建KafkaConsumer对象,见下面的getConsumer方法
KafkaConsumer consumer = getConsumer();
// 2. 订阅topic集合或者使用正则表达式
consumer.subscribe(Collections.singletonList("test"));
// consumer.subscribe(Pattern.compile("topic-.*"));
// 3. 进入poll循环
try {
while (true) {
// 3.1 从broker获取数据
// poll方法的参数是指最多等待缓冲区被填满的超时时间,100ms还没有满的话,有多少返回多少
ConsumerRecords<String, String> re