首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Kafka 0.10.0.0 快速入門:環境搭建、命令行操作與 Java 客戶端

     編輯:Java 綜合教學

Kafka 0.10.0.0 快速入門:環境搭建、命令行操作與 Java 客戶端

Apache Kafka 是高吞吐量的分佈式發布-訂閱消息系統。本文記錄 0.10.0.0 版本的關鍵配置與基本使用。

關鍵配置(單機偽集群也需設置)

# config/server.properties
host.name=192.168.1.30
advertised.host.name=192.168.1.30
# listeners=PLAINTEXT://192.168.1.30:9092  (0.10+ 建議用 listeners 替代上述兩項)

注意:未正確配置 advertised.host.name 會導致外部機器無法連接 Broker。

Log4j 依賴補充

0.10 版本缺少 Log4j 適配器,需額外引入:

<dependency>
  <groupId>org.apache.kafka</groupId>
  <artifactId>kafka-log4j-appender</artifactId>
  <version>0.10.0.0</version>
</dependency>

命令行驗證

# 啟動 Zookeeper 與 Kafka Broker 後
# 生產者
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic my-topic

# 消費者(從頭消費)
bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic my-topic --from-beginning

Java 客戶端(官方示例簡化)

生產者

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");
KafkaProducer<String, String> producer = new KafkaProducer<>(props);
producer.send(new ProducerRecord<>("my-topic", "key", "hello kafka 0.10"));
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");
KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props);
consumer.subscribe(Arrays.asList("my-topic"));
while (true) {
    ConsumerRecords<String, String> records = consumer.poll(100);
    records.forEach(r -> System.out.printf("offset=%d, key=%s, value=%s%n", r.offset(), r.key(), r.value()));
}

總結

Kafka 已高度服務化,學習重點在於:配置調優(網絡、存儲、副本)與 客戶端最佳實踐(冪等、事務、消費組再平衡)。底層原理(如 ISR、Controller 選舉)遇到具體場景再深入。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved