Kafka入门指南:探索越多,未知越广,如何快速上手Kafka解决数据处理难题?

文章导读
快速上手Kafka的核心是安装Kafka、创建Topic、用Producer发送消息、用Consumer消费消息,通过简单命令行工具在本地运行即可解决基本数据处理难题。
📋 目录
  1. 安装与启动
  2. 创建Topic
  3. 生产者发送消息
  4. 消费者接收消息
  5. 基本概念
  6. 数据处理应用
  7. 简单Java Producer示例
  8. FAQ
A A

快速上手Kafka的核心是安装Kafka、创建Topic、用Producer发送消息、用Consumer消费消息,通过简单命令行工具在本地运行即可解决基本数据处理难题。

安装与启动

下载Kafka二进制包,解压后启动Zookeeper:bin/zookeeper-server-start.sh config/zookeeper.properties,然后启动Kafka:bin/kafka-server-start.sh config/server.properties。

创建Topic

使用命令创建主题:bin/kafka-topics.sh --create --topic quickstart --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1。

生产者发送消息

运行生产者:bin/kafka-console-producer.sh --topic quickstart --bootstrap-server localhost:9092,输入消息按回车发送。

消费者接收消息

在新终端运行消费者:bin/kafka-console-consumer.sh --topic quickstart --from-beginning --bootstrap-server localhost:9092,查看所有消息。

基本概念

Kafka是一个分布式的流处理平台,主要用于高吞吐、低延迟的发布订阅消息系统,核心包括Producer、Broker、Consumer、Topic、Partition。

Kafka入门指南:探索越多,未知越广,如何快速上手Kafka解决数据处理难题?

数据处理应用

Kafka常用于实时数据管道,比如日志收集、流式处理、网站活动跟踪,通过消费者组实现负载均衡和故障恢复。

简单Java Producer示例

import org.apache.kafka.clients.producer.*; Properties props = new Properties(); props.put("bootstrap.servers", "localhost:9092"); props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer"); props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer"); Producer producer = new KafkaProducer<>(props); producer.send(new ProducerRecord("test", "value")); producer.close();

FAQ

Q: Kafka需要Zookeeper吗?

A: 早期版本需要,新版Kafka支持KRaft模式无需Zookeeper。

Q: Topic和Partition区别是什么?

Kafka入门指南:探索越多,未知越广,如何快速上手Kafka解决数据处理难题?

A: Topic是消息类别,Partition是Topic的并行单元,支持水平扩展。

Q: 如何查看Topic列表?

A: 用命令 bin/kafka-topics.sh --list --bootstrap-server localhost:9092。

Q: Consumer如何处理消息顺序?

A: 同Partition内消息有序,不同Partition间无序。