1.基于docker window10 wsl2 kafka和zookeeper镜像都是 bitnami的,在docker镜像库中bitnami还是下载量最多的
2.docker-compose文件
version: "3"
services:
zookeeper:
image: docker.io/bitnami/zookeeper:3.7
ports:
- "2181:2181"
volumes:
- E:/docker-data/kafkas/bitnami-zookeeper:/bitnami
environment:
- ALLOW_ANONYMOUS_LOGIN=yes
kafka:
image: docker.io/bitnami/kafka:3
ports:
- "9093:9093"
volumes:
- E:/docker-data/kafkas/bitnami-kafka:/bitnami
environment:
- KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181
- KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CLIENT:PLAINTEXT,EXTERNAL:PLAINTEXT
- KAFKA_CFG_LISTENERS=CLIENT://:9092,EXTERNAL://:9093
- KAFKA_CFG_ADVERTISED_LISTENERS=CLIENT://kafka:9092,EXTERNAL://192.168.1.208:9093
- KAFKA_CFG_INTER_BROKER_LISTENER_NAME=CLIENT
- ALLOW_PLAINTEXT_LISTENER=yes
depends_on:
- zookeeper
kafka-manager:
container_name: kafka-manager
image: sheepkiller/kafka-manager
ports:
- "9000:9000"
environment:
ZK_HOSTS: zookeeper:2181
APPLICATION_SECRET: letmein
KAFKA_MANAGER_AUTH_ENABLED: "true"
KAFKA_MANAGER_USERNAME: admin
KAFKA_MANAGER_PASSWORD: password
restart: always
3.运行命令
docker-compose -f kafka.yml up -d
启动如果不成功或者消费不到消息,清空挂载文件,重新启动即可,我遇到过这种情况都启动成功就是发送消息后消费不到,可能是挂在文件中存在之前错误的配置
4. 测试kafka启动
进入容器
docker exec -it xxx /bin/sh
验证zookeeper是否成功启动
/opt/bitnami/zookeeper/bin/zkServer.sh status(一个leader,两个follower)
或者
在Zookeeper安装的任何一个节点执行客户端连接命令:
bin/zkCli.sh -server 192.168.1.1:2181
kafka测试消息发送和消费
生产消息
/opt/bitnami/kafka/bin/kafka-console-producer.sh --broker-list 192.168.1.208:9093 --topic TestTopic
消费消息
/opt/bitnami/kafka/bin/kafka-console-consumer.sh --bootstrap-server 192.168.1.208:9093 --topic TestTopic --from-beginning
UI工具用的kafka-manager和KafkaUI-lite
kafka-manager在上面配置文件中
kafkaui-lite参考这个源码,里面有详细介绍和各种搭建部署说明,很简单的一款工具kafkaUI-lite: 史上最轻便好用的kafka 可视化图形界面工具,可以生产消费消息,管理topic、group、集群。支持管理多个kafka环境。部署简便,不需要连数据库,只有一个jar包启动即可。同时也是zookeeper 、redis的可视化图形界面工具