kafka环境
$ tar -xzf kafka_2.12-3.0.2.tgz
$ cd kafka_2.12-3.0.2
kafka必须使用JDK8+
启动
Apache Kafka可以使用ZooKeeper或KRaft启动。可以参考下面文档使用任何一种配置启动,但不要同时用两种方式启动。
- Kafka with ZooKeeper
# 启动ZooKeeper服务
$ bin/zookeeper-server-start.sh config/zookeeper.properties
$ bin/zookeeper-server-start.sh config/zookeeper.properties >> /dev/null 2>&1 &
命令说明:
- /dev/null 可以理解为黑洞,任何东西重定向到该目录都会消失
command >> file 2>&1
表示stdout 和 stderr 合并后重定向到 file- 最后一个&符号的作用:让一个命令在后台运行,一般在命令的末尾加& 符号
打开另一个终端会话并运行:
# 启动Kafka broker服务
$ bin/kafka-server-start.sh config/server.properties
- Kafka with KRaft
# 生成集群UUID
$ KAFKA_CLUSTER_ID="$(bin/kafka-storage.sh random-uuid)"
# Format Log Directories
$ bin/kafka-storage.sh format -t $KAFKA_CLUSTER_ID -c config/kraft/server.properties
# 开启Kafka服务
$ bin/kafka-server-start.sh config/kraft/server.properties
创建TOPIC
$ bin/kafka-topics.sh --create --topic quickstart-events --bootstrap-server localhost:9092
Created topic quickstart-events.
$ bin/kafka-topics.sh --describe --topic quickstart-events --bootstrap-server localhost:9092
查询TOPIC列表
$ bin/kafka-topics.sh --list --bootstrap-server localhost:9092
# 加配置
$ bin/kafka-consumer-groups.sh --command-config config/consumer.properties --bootstrap-server localhost:9093 --list
查看消费组
$ bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list
$ bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --describe --group first
生产/消费
$ bin/kafka-console-producer.sh --topic quickstart-events --bootstrap-server localhost:9092
This is my first event
This is my second event
$ bin/kafka-console-consumer.sh --topic quickstart-events --from-beginning --bootstrap-server localhost:9092
This is my first event
This is my second event
# 加配置文件
bin/kafka-console-producer.sh --topic quickstart --bootstrap-server localhost:9092 --producer.config config/producer.properties
bin/kafka-console-consumer.sh --topic quickstart --bootstrap-server localhost:9092 --from-beginning --consumer.config config/consumer.properties