Kafka

 

2022-11-23

基本概念

  • Broker: Kafka 节点,多个 Broker 构成一个集群
  • Producer: 生产者,通过 Broker 发布消息到指定 Topic 中
  • Consumer: 消费者,通过 Broker 从指定 Topic 获取消息
  • Topic: 某种类型消息的合集
    • Partition: Topic 物理上的分组,多个 Partition 会被分散地存储在不同的 Kafka 节点上; 单个 Partition 的消息是保证有序的, 但整个 Topic 的消息就不一定是有序的
    • Segment: 包含消息内容的指定大小的文件, 由 index 文件和 log 文件组成; 一个 Partition 由多个 Segment 文件组成
    • Replica: 消息的冗余备份, 表现为每个 Partition 都会有 N 个完全相同的冗余备份, 这些备份会被尽量分散存储在不同的机器上;

命令行

  • 进入 kafka 容器: docker exec -it kafka /bin/bash
  • 查看话题: kafka-topics.sh --list --zookeeper zookeeper:2181
  • 生产消息: kafka-console-producer.sh --broker-list kafka:9092 --topic=test
  • 消费消息: kafka-console-consumer.sh --bootstrap-server kafka:9092 --from-beginning --topic test

参考