docker-compose部署kafka全过程
作者:lcz-2000
文章介绍了如何使用docker-compose.yaml文件启动容器,并查看和创建Kafka topic,以及监控topic下的数据,作者分享了个人经验,希望对大家有所帮助
docker-compose部署kafka
docker-compose.yaml文件
version: '3'
services:
zookeeper:
image: bitnami/zookeeper:latest
container_name: zookeeper
environment:
- ALLOW_ANONYMOUS_LOGIN=yes
network_mode: host
kafka:
image: bitnami/kafka:latest
container_name: kafka
environment:
- KAFKA_BROKER_ID=1
- KAFKA_CFG_LISTENERS=PLAINTEXT://主机IP地址:9092
- KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://主机IP地址:9092 #如果是docker容器外访问这里要写宿主机的ip 否则会报Error connecting to node kafka:9092 (id: 1 rack: null) java.net.UnknownHostException: 不知道这样的主机。
- KAFKA_CFG_ZOOKEEPER_CONNECT=主机IP地址:2181
- ALLOW_PLAINTEXT_LISTENER=yes
depends_on:
- zookeeper
network_mode: host启动容器
docker-compose up -d
查看已创建的topic
docker exec -it kafka kafka-topics.sh --list --bootstrap-server 主机IP地址:9092
创建topic
//方式一 docker exec -it kafka kafka-console-producer.sh --bootstrap-server 主机IP地址:9092 --topic test //方式二 docker exec kafka kafka-topics.sh --create --topic test --partitions 1 --replication-factor 1 --if-not-exists --bootstrap-server 主机IP地址:9092 //Created topic test. //--partitions 1 表示你想要创建的分区数量为 1,--replication-factor 1 表示每个分区的副本因子为 1(通常在生产环境中,你会希望设置更高的副本因子以增加容错性)。--if-not-exists 是一个可选参数,用于在 topic 已经存在时防止报错。
查看并监控topic下数据
docker exec -it kafka kafka-console-consumer.sh --bootstrap-server 主机IP地址:9092 --topic test --from-beginning //--from-beginning 参数表示从topic的起始位置开始读取消息 不带该参数默认从最新偏移量开始监控消费
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
