docker 安装 kafka
前言:kafka需要依赖zookeeper 存储信息,需要提前安装zookeeper
1. 拉取镜像
docker pull wurstmeister/kafka
2. 启动镜像
docker run -d --name mykafka1 \
-p 9991:9991 \
-h mykafka1 \
-e KAFKA_BROKER_ID=1 \
-e KAFKA_ZOOKEEPER_CONNECT=172.16.193.182:2181/kafka1 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://mykafka1:9991 \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9991 \
-v /etc/localtime:/etc/localtime \
-v /usr/docker/data/kafka:/kafka \
wurstmeister/kafka
-h mykafka1 \ 配置hostname 方便外网访问 ,搭建集群
-e KAFKA_BROKER_ID=1 \在kafka集群中,每个kafka都有一个BROKER_ID来区分自己
-e KAFKA_ZOOKEEPER_CONNECT=172.16.193.182:2181 \配置zookeeper管理kafka的路径192.168.155.56:2181/kafka
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://47.114.161.234:9991 \把kafka的地址端口注册给zookeeper
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9991 \配置kafka的监听端口
-v /etc/localtime:/etc/localtime \ 同步容器时间
-v /usr/docker/data/kafka:/kafka \ 持久化 kafka目录
3.测试
进入docker zookeeper 容器查看
docker exec -it myzookeeper /bin/bash
执行 cd bin
./zkCli.sh
然后查看 zookeeper 目录下多了 kafka
docker kafka 数据文件保存的路径:
在配置文件service.config中配置的,log.dirs配置保存路径。
进入kafka容器,找到配置文件路径/opt/kafka_2.11-2.0.0/config
里面的 server.properties,可以看到数据文件的位置
在容器的kafka安装bin目录下
创建 topic
./kafka-topics.sh --create --zookeeper 172.16.193.182:2181 --replication-factor 1 --partitions 1 --topic test-topic
查看topic
./kafka-topics.sh --list --zookeeper 172.16.193.182:2181/kafka
https://stackoverflow.com/questions/35788697/leader-not-available-kafka-in-console-producer