添加docker network
docker network create -d bridge mynetwork
docker compose安装kafka,zookeeper
- 替换192.168.0.104为本机IP
- 替换/Users/wenchen/docker/kafka为本地路径
docker-compose.yml
version: "3"
services:
zookeeper:
image: docker.io/bitnami/zookeeper:3.8
network_mode: network_kafka
container_name: zookeeper_1
ports:
- "2181:2181"
volumes:
- /Users/wenchen/docker/kafka/zookeeper_1:/bitnami
environment:
- ALLOW_ANONYMOUS_LOGIN=yes
kafka:
image: docker.io/bitnami/kafka:3.4
network_mode: network_kafka
container_name: kafka_1
ports:
- "9092:9092"
volumes:
- /Users/wenchen/docker/kafka/kafka_1:/bitnami
environment:
- KAFKA_BROKER_ID=1
- KAFKA_CFG_LISTENERS=PLAINTEXT://:9092
- KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://192.168.0.104:9092
- KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181
- ALLOW_PLAINTEXT_LISTENER=yes
depends_on:
- zookeeper
docker-compose.yml文件目录下运行
docker compose -f docker-compose.yml up
docker compose安装kafka-ui
- 替换/Users/wenchen/docker/kafka为本地路径
docker-compose.yml
version: "3"
services:
kafka-ui:
image: provectuslabs/kafka-ui:latest
network_mode: network_kafka
container_name: kafka-ui
restart: always
ports:
- 9091:8080
volumes:
- /Users/wenchen/docker/kafka-ui/etc/localtime:/etc/localtime
environment:
# 集群名称
- KAFKA_CLUSTERS_0_NAME=local
# 集群地址
- KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS=kafka_1:9092
docker-compose.yml文件目录下运行
docker compose -f docker-compose.yml up
kafka操作
#进入容器
docker exec -it kafka_1 /bin/bash
#进入目录
cd /opt/bitnami/kafka/bin/
#创建topic
kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 3 --topic test
Created topic test.
#查看所有Topic
kafka-topics.sh --list --bootstrap-server localhost:9092
test
#查看topic详情
kafka-topics.sh --describe --bootstrap-server localhost:9092 --topic test
Topic: test TopicId: dW0aGlwTR3aXq4_370T4kw PartitionCount: 3 ReplicationFactor: 1 Configs:
Topic: test Partition: 0 Leader: 1 Replicas: 1 Isr: 1
Topic: test Partition: 1 Leader: 1 Replicas: 1 Isr: 1
Topic: test Partition: 2 Leader: 1 Replicas: 1 Isr: 1
# 启动一个生产者(输入消息)
kafka-console-producer.sh --broker-list localhost:9092 --topic test
[等待输入自己的内容 出现>输入即可]
>i am a new msg !
>i am a good msg ?
# 启动一个消费者(等待消息)
# 注意这里的--from-beginning,每次都会从头开始读取,你可以尝试去掉和不去掉看下效果
kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
[等待消息]
i am a new msg !
i am a good msg ?