命令行方式使用Kafka

2024-02-11 SpringBootKafka中间件
  • 创建topic

    ./kafka-topics.sh --create --zookeeper 192.168.133.102:2181 --replication-factor 1 --partitions 2 --topic xk857-topic
    
  • 查看topic

    ./kafka-topics.sh --list --zookeeper 192.168.133.102:2181
    
  • 生产者发送消息

    ./kafka-console-producer.sh --broker-list 192.168.133.102:9092  --topic version1-topic
    
  • 消费者消费消息 ( --from-beginning:会把主题中以往所有的数据都读取出来, 重启后会有这个重复消费)

    ./kafka-console-consumer.sh --bootstrap-server 192.168.133.102:9092 --from-beginning --topic t1
    
  • 删除topic

    ./kafka-topics.sh --zookeeper 192.168.133.102:2181 --delete --topic t1
    
  • 查看broker节点topic状态信息

    ./kafka-topics.sh --describe --zookeeper 192.168.133.102:2181  --topic xk857-topic
    

# Kafka消费者组配置实现点对点消费模型

  • 编辑消费者配置(确保同个名称group.id一样)
    • 编辑 config/consumer.properties
  • 创建topic, 1个分区
./kafka-topics.sh --create --zookeeper 192.168.133.102:2181 --replication-factor 1 --partitions 2 --topic t1
  • 指定配置文件启动 两个消费者
./kafka-console-consumer.sh --bootstrap-server 192.168.133.102:9092 --from-beginning --topic t1 --consumer.config ../config/consumer.properties
  • 现象

    • 只有一个消费者可以消费到数据,一个分区只能被同个消费者组下的某个消费者进行消费

# Kafka消费者组配置实现发布订阅消费模型

  • 编辑消费者配置(确保group.id 不一样)
    • 编辑 config/consumer-1.properties
    • 编辑 config/consumer-2.properties
  • 创建topic, 2个分区
./kafka-topics.sh --create --zookeeper 192.168.133.102:2181 --replication-factor 1 --partitions 2 --topic t2
  • 指定配置文件启动 两个消费者
./kafka-console-consumer.sh --bootstrap-server 192.168.133.102:9092 --from-beginning --topic t1 --consumer.config ../config/consumer-1.properties

./kafka-console-consumer.sh --bootstrap-server 192.168.133.102:9092 --from-beginning --topic t1 --consumer.config ../config/consumer-2.properties
  • 现象
    • 两个不同消费者组的节点,都可以消费到消息,实现发布订阅模型