Apache Kafka 是一个分布式流处理平台,常用于构建实时数据管道和流应用。以下是 Java 开发者快速上手 Kafka 的核心指南:
🚀 快速入门
环境准备
- 安装 Kafka(需先配置 Java 环境)
- 使用 Kafka Quick Start 模板初始化项目
- 添加 Maven 依赖:
<dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-clients</artifactId> <version>3.3.1</version> </dependency>
生产者示例
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<String, String> producer = new KafkaProducer<>(props); ProducerRecord<String, String> record = new ProducerRecord<>("test-topic", "Hello Kafka"); producer.send(record); producer.close();
消费者实现
Properties props = new Properties(); props.put("bootstrap.servers", "localhost:9092"); props.put("group.id", "test-group"); props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer"); props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer"); Consumer<String, String> consumer = new KafkaConsumer<>(props); consumer.subscribe(Arrays.asList("test-topic")); for (ConsumerRecord<String, String> record : consumer) { System.out.println("收到消息: " + record.value()); }
📚 核心概念
- Topic:消息的主题,如
user_activity
- Producer:数据生产者,负责发送消息到 Kafka
- Consumer:数据消费者,用于订阅和处理消息
- Broker:Kafka 集群中的服务器节点
🛠️ 最佳实践
- 使用 Kafka Manager 监控集群状态
- 配置
acks=all
确保消息可靠性 - 启用压缩(如 snappy)优化传输效率
- 定期清理过期数据(保留策略:
delete
或compact
)
🌐 扩展阅读
📌 提示:如需可视化 Kafka 流处理流程,可参考 Kafka 流架构图 进行学习。