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 入门

Passons à la pratique !

Apache Kafka 入门

Preparing Video For Download...