本文不涉及集群,但是该有的组件都还是会有,典型的kafka分布式架构如下图所示。本例搭建的示例包含Zookeeper + Kafka + Kafka-manger
获取镜像
docker pull docker pull zookeeper:3.5.6
docker pull docker pull wurstmeister/kafka:2.12-2.3.0
kafka-manager:latest
分别启动 Zookeeper 和 kafka
docker run --name:zookeeper -p 2181:2181 -d zookeeper:3.5.6
docker run -d --name kafka \
-p 9092:9092 \
-e KAFKA_BROKER_ID=0 \
-e KAFKA_ZOOKEEPER_CONNECT=xxx:2181 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://xxx:9092 \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -t 容器ID
docker run -itd \
--restart=always \
--name=kafka-manager \
-p 9000:9000 \
-e ZK_HOSTS="xxx:2181" \
sheepkiller/kafka-manager
容器启动以后访问主机的9000端口,http://xxx:9000
进入容器
docker exec -it kafka /bin/bash
创建一个主题:
/opt/kafka/bin/kafka-topics.sh --create --zookeeper xxx:2181 --replication-factor 1 --partitions 1 --topic mytest
查询创建的主题
/opt/kafka/bin/kafka-topics.sh --list --zookeeper xxx:2181
发送消息:
/opt/kafka/bin/kafka-console-producer.sh --broker-list xxxx:9092 --topic mytest
读取消息:
/opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server xxxx:9092 --topic mytest --from-beginning