环境:linux系统版本:centos7、jdk环境:jdk1.8、zookeeper:apache-zookeeper-3.5.9、kafka:kafka_2.12-2.7.0
- 下载kafka安装包kafka_2.12-2.7.0.tgz
- 或通过命令wget下载安装包:
wget http://mirrors.hust.edu.cn/apache/kafka/2.0.0/kafka_2.12-2.7.0.tgz - 解压:tar –zxvf kafka_2.12-2.7.0.tgz
- 进入config目录,配置server.properties
修改advertised.listeners=PLAINTEXT://:ip:9092
通过外网连接服务器Kafka需修改listeners=PLAINTEXT://0.0.0.0:9092或指定的ip
- 启动zookeeper:./zkServer.sh start
注意,需要先启动ZooKeeper再启动kafka,不然会报错
- 启动kafka:bin/kafka-server-start.sh config/server.properties
启动Kafka Broker后,在ZooKeeper终端上键入命令 jps,查看
- 停止kafka:bin/kafka-server-stop.sh config/server.properties
- 创建topic
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic demo
其中demo为创建的topic名
- 查询topic列表
bin/kafka-topics.sh --list --zookeeper localhost:2181
- 查看topic信息
bin/kafka-topics.sh --zookeeper localhost:2181 --describe --topic demo
- 删除topic
bin/kafka-topics.sh --zookeeper localhost:2181 --delete --topic demo
- 启动生产者
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic demo
- 启动消费者
bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic demo --from-beginning
报错提示zookeeper is not a recognized option
或
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic demo --from-beginning
- 可以开启两个终端,一个发送消息,一个接受消息。效果如下: