Docker搭建kafka

搭建zookeeper环境

1
2
3
4
5
6
7
8
9
10
11
docker pull zookeeper
docker run -d \
--restart=always \
-v /opt/docker/zookeeper/zoo1/data:/data \
-v /opt/docker/zookeeper/zoo1/datalog:/datalog \
-e ZOO_MY_ID=1 \
-e ZOO_SERVERS="server.1=zookeeper-A:2888:3888 server.2=zookeeper-B:2888:3888 server.3=zookeeper-C:2888:3888" \
--name=zookeeper-A \
--net=host \
--privileged \
zookeeper
  • 指定了–net=host和–privileged选项,使得容器可以使用主机的ip地址和端口进行通信。
  • restart=always当Docker重启时,容器能自动启动
  • 2181:对client端提供服务
  • 3888:选举leader使用
  • 2888:集群内机器通讯使用(Leader监听此端口)

创建kafka环境

1
2
docker pull wurstmeister/kafka
docker run -d --name kafka -p 9092:9092 --env KAFKA_ADVERTISED_HOST_NAME=localhost -e KAFKA_ZOOKEEPER_CONNECT=192.168.9.219:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.9.219:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -e KAFKA_HEAP_OPTS="-Xmx256M -Xms128M" --net=host wurstmeister/kafka

Kafka命令

并创建topic 生产者

1
2
3
4
docker exec -it kafka bash
cd /opt/kafka_2.11-2.0.0/bin/
./kafka-topics.sh --create --zookeeper 192.168.1.43:2181 --replication-factor 1 --partitions 8 --topic test
./kafka-console-producer.sh --broker-list localhost:9092 --topic test

创建kafka消费者消费消息

1
2
3
docker exec -it kafka bash
cd /opt/kafka_2.11-2.0.0/bin/
./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

搭建kafka-manager

1
2
3
docker pull sheepkiller/kafka-manager
docker run -it -d --rm -p 9000:9000 -e ZK_HOSTS="192.168.1.43:2181" --net=host sheepkiller/kafka-manager
firewall-cmd --add-port=9000/tcp

查看消息主题列表

1
./kafka-topics.sh --list --zookeeper zookeeper:2181 test

查看指定topic信息

1
./kafka-topics.sh --describe --zookeeper zookeeper:2181 --topic test

------ 本文结束------

本文标题:Docker搭建kafka

文章作者:Perkins

发布时间:2019年11月29日

原始链接:https://perkins4j2.github.io/posts/58214/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。