Kafka 主題

Apache Kafka 入門

Mike Metzger

Data Engineering Consultant

什麼是主題?

  • 主題是事件的邏輯分組
    • 類似關聯式資料庫中的資料表
    • 事件日誌
    • 訊息不可變
    • 主題中的訊息可讀可寫,但不可修改
    • 可依年齡移除訊息

Kafka 主題示意圖.png

Apache Kafka 入門

建立主題

  • 建立主題有多種方式
  • 我們將使用 bin/kafka-topics.sh 指令稿
    bin/kafka-topics.sh 
        --bootstrap-server <server> 
        --topic <topicname>
        --create
    
  • 範例
    $ bin/kafka-topics.sh --bootstrap-server localhost:9092 \
    --topic orders --create
    
Created topic orders
Apache Kafka 入門

其他變化

  • bin/kafka-topics.sh --create 的選用參數

    • --replication-factor <x>
      • 設定主題的複製因子
    • --partitions <x>
      • 手動指定分割區數量
  • 範例

    $ bin\kafka-topics.sh --bootstrap-server localhost:9092 \
    --topic orders --create --replication-factor 3 \
    --partitions 3
    
Created topic orders
Apache Kafka 入門

--describe

  • bin/kafka-topics.sh --bootstrap-server <server> --topic <topicname> --describe

    • 取得主題設定詳細資訊
  • 範例

    $ bin/kafka-topics.sh --bootstrap-server localhost:9092 \
       --topic orders --describe
    
Topic: orders-new TopicId: <topicid> PartitionCount: 3 ReplicationFactor: 1    
  Configs:
    Topic: orders-new    Partition: 0    Leader: 0    Replicas: 0    Isr: 0
    Topic: orders-new    Partition: 1    Leader: 0    Replicas: 0    Isr: 0
    Topic: orders-new    Partition: 2    Leader: 0    Replicas: 0    Isr: 0
Apache Kafka 入門

移除主題

  • bin/kafka-topics.sh --bootstrap-server <server> --topic <topicname> --delete
    • 從 Kafka 伺服器移除主題
    • 移除主題同時會刪除其中所有訊息
  • 範例
    $ bin/kafka-topics.sh --bootstrap-server localhost:9092
      --topic orders --delete
    
$
Apache Kafka 入門

一起來練習吧!

Apache Kafka 入門

Preparing Video For Download...