Apache Kafka 是一个分布式流处理平台,常用于构建实时数据管道和流应用。以下是 Java 开发者快速上手 Kafka 的核心指南:

🚀 快速入门

  1. 环境准备

    • 安装 Kafka(需先配置 Java 环境)
    • 使用 Kafka Quick Start 模板初始化项目
    • 添加 Maven 依赖:
      <dependency>
        <groupId>org.apache.kafka</groupId>
        <artifactId>kafka-clients</artifactId>
        <version>3.3.1</version>
      </dependency>
      
  2. 生产者示例

    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();
    
    Kafka_producer
  3. 消费者实现

    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());
    }
    
    Kafka_consumer

📚 核心概念

  • Topic:消息的主题,如 user_activity
    Kafka_topic
  • Producer:数据生产者,负责发送消息到 Kafka
  • Consumer:数据消费者,用于订阅和处理消息
  • Broker:Kafka 集群中的服务器节点

🛠️ 最佳实践

  • 使用 Kafka Manager 监控集群状态
  • 配置 acks=all 确保消息可靠性
  • 启用压缩(如 snappy)优化传输效率
  • 定期清理过期数据(保留策略:deletecompact

🌐 扩展阅读

📌 提示:如需可视化 Kafka 流处理流程,可参考 Kafka 流架构图 进行学习。