搭建Kafka集群
zookeeper容器
拉取官方的zk镜像docker pull zookeeper
启动一个容器
docker run -d -e TZ="Asia/Shanghai" -p 2181:2181 -v $PWD/data:/data --name zookeeper --restart always zookeeper
当然也可以启动一个zk集群,不过本文关注的是kafka,所以zk就不赘述
docker inspect zookeeper | grep IPAddress
查询zk所在的ip
kafka容器
docker pull dylan123/jdk-centos7:1.8.0_171
docker run --name kafka1 -it dylan123/jdk-centos7:1.8.0_171 bash
- 安装Kafka
curl -O https://mirror-hk.koddos.net/apache/kafka/2.5.0/kafka_2.13-2.5.0.tgz
tar -zxvf kafka_2.13-2.5.0.tgz -C /opt/
- 修改配置
cd /opt/kafka_2.13-2.5.0
vi config/server.properties
修改当中的id和zk即可
broker.id=0# id不能冲突
zookeeper.connect=$ZK_HOST:2181
- 启动
bin/zookeeper-server-start.sh config/zookeeper.properties &
可以启动自带的zk
bin/kafka-server-start.sh -daemon config/server.properties &
启动
如果需要可以添加环境变量
#KAFKA_HOME export KAFKA_HOME=/opt/kafka_2.13-2.5.0 export PATH=$PATH:$KAFKA_HOME/bin
刷新环境变量
source /etc/profile
可以看到kafka成功运行着
制作镜像
进入到一个空的文件夹准备制作镜像vim Dockerfike
FROM dylan123/jdk-centos7:1.8.0_171
RUN curl -O https://mirror-hk.koddos.net/apache/kafka/2.5.0/kafka_2.13-2.5.0.tgz \
&& tar -zxvf kafka_2.13-2.5.0.tgz -C /opt/`
构建镜像
docker build -f Dockerfile -t kafka:20201231_1 .
启动的时候需要指定-it bash
避免秒退
快速测试
- 创建topic
bin/kafka-topics.sh --create --topic quickstart-events --bootstrap-server localhost:9092
- 控制台生产者
bin/kafka-console-producer.sh --topic quickstart-events --bootstrap-server localhost:9092
- 控制台消费者
bin/kafka-console-consumer.sh --topic quickstart-events --from-beginning --bootstrap-server localhost:9092