获取两镜像:
docker pull zookeeper
docker pull kafka
执行简单命令:
zookeeper :
docker run -d --name zookeeper -p 2181:2181 -v /etc/localtime:/etc/localtime -v /root/docker/zookeeper/data/:/data/ zookeeper
kafka:
docker run -d --name kafka-server \
-p 9092:9092 \
-e ALLOW_PLAINTEXT_LISTENER=yes \
-e KAFKA_CFG_ZOOKEEPER_CONNECT=xx.xxx.xxx.xx:2181 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://xx.xxx.xxx.xx:9092 \
bitnami/kafka
官网也有安装方式
遇到的问题:
WARN [Producer clientId=console-producer] Error while fetching metadata with correlation id 3 : {first=LEADER_NOT_AVAILABLE} (org.apache.kafka.clients.NetworkClient)
解决:
docker exec -u 0 -it kafka-server /bin/bash
vim /opt/bitnami/kafka/config/server.properties
打开kafka的配置文件server.properties,修改:
listeners=PLAINTEXT://loclahost:9092
#### localhost就是本机IP或者映射
重启kafka。
kafka3.0创建topic出现zookeeper is not a recognized option
原来新版本的kafka,已经不需要依赖zookeeper来创建topic,新版的kafka创建topic指令为下:
#### 在容器kafka 目录bin下执行( cd /opt/bitnami/kafka/bin/ )
###创建topic test1 指令:
./kafka-topics.sh --create --bootstrap-server xxx.xxx.xxx.xxx:9092 --replication-factor 1 --partitions 1 --topic test1
### 创建生产者
./kafka-console-producer.sh --broker-list xxx.xxx.xxx.xxx:9092 --topic test1
### 创建消息者
./kafka-console-consumer.sh --bootstrap-server xxx.xxx.xxx.xxx:9092 --topic test1 --from-beginning
#### 查询topic
./kafka-topics.sh --bootstrap-server xxx.xxx.xxx.xxx:9092 --list