docker-compose部署kafka

创建网络

docker network create kafka-net

docker-compose.yaml文件

复制代码
version: '3'
services:
  zookeeper:
    image: bitnami/zookeeper:latest
    container_name: zookeeper
    ports:
      - '2181:2181'
    environment:
      - ALLOW_ANONYMOUS_LOGIN=yes
    networks:
      - kafka-net
  kafka:
    image: bitnami/kafka:latest
    container_name: kafka
    ports:
      - '9092:9092'
    environment:
      - KAFKA_BROKER_ID=1
      - KAFKA_CFG_LISTENERS=PLAINTEXT://:9092
      - KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://kafka:9092 #如果是docker容器外访问这里要写宿主机的ip 否则会报Error connecting to node kafka:9092 (id: 1 rack: null) java.net.UnknownHostException: 不知道这样的主机。
      - KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181
      - ALLOW_PLAINTEXT_LISTENER=yes
    depends_on:
      - zookeeper
    networks:
      - kafka-net

networks:
  kafka-net:
    external: true
复制代码

启动容器

docker-compose up -d

查看已创建的topic

docker exec -it kafka kafka-topics.sh --list --bootstrap-server kafka:9092

创建topic

//方式一
docker exec -it kafka kafka-console-producer.sh --bootstrap-server kafka:9092 --topic test
//方式二
docker exec kafka kafka-topics.sh --create --topic test --partitions 1 --replication-factor 1 --if-not-exists --bootstrap-server kafka: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 kafka:9092 --topic test --from-beginning
//--from-beginning 参数表示从topic的起始位置开始读取消息 不带该参数默认从最新偏移量开始监控消费

 

posted @   白玉神驹  阅读(720)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
历史上的今天:
2023-05-11 ElasticSearch代码常用关键词
点击右上角即可分享
微信分享提示