You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

confluentinc/cp-kafka容器中Kafka脚本位置及手动测试咨询

Kafka容器操作问题

我使用confluentinc/cp-kafka:latest镜像创建了Kafka Docker容器,容器运行正常。尝试执行命令:

kafka-topics --bootstrap-server kafka:9092 --list

但返回空白结果,此前已通过Docker Compose的command属性创建主题。我查找了以下路径:

/etc/kafka # 仅包含配置文件
/opt/ # 未列出相关子目录

我的Docker Compose配置如下:

kafka:
  image: confluentinc/cp-kafka:latest
  depends_on:
    - zookeeper
  ports:
    - 29092:29092
  expose:
    - 29092
  environment:
    KAFKA_BROKER_ID: 1
    KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
    KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092,PLAINTEXT_HOST://localhost:29092
    KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
    KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
    KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1

需解决以下问题:

  1. 如何在容器终端内手动测试Kafka服务
  2. Kafka shell脚本的存放位置

解答

1. 容器内手动测试Kafka服务

可以通过以下步骤验证服务状态:

  • 重新检查主题列表:如果kafka:9092返回空白,尝试用容器本地地址测试:
    kafka-topics --bootstrap-server localhost:9092 --list
    
    或指定完整协议地址:
    kafka-topics --bootstrap-server PLAINTEXT://kafka:9092 --list
    
  • 创建测试主题验证:手动创建一个测试主题,确认是否能正常写入:
    kafka-topics --bootstrap-server kafka:9092 --create --topic test-topic --partitions 1 --replication-factor 1
    
    执行完成后再用--list命令查看,确认主题是否存在。
  • 生产/消费消息闭环测试:
    • 启动生产者终端发送测试消息:
      kafka-console-producer --bootstrap-server kafka:9092 --topic test-topic
      
      输入任意文本回车即可发送消息。
    • 新开一个容器终端启动消费者接收消息:
      kafka-console-consumer --bootstrap-server kafka:9092 --topic test-topic --from-beginning
      
      若能收到之前发送的消息,说明Kafka服务运行正常。

2. Kafka shell脚本的存放位置

在confluentinc/cp-kafka镜像中,Kafka的shell脚本统一存放在/usr/bin/目录下,可通过以下命令查看所有相关脚本:

ls /usr/bin/kafka-*

该目录包含kafka-topics、kafka-console-producer、kafka-console-consumer等常用工具,且/usr/bin/已加入系统环境变量PATH,直接输入脚本名称即可执行,无需填写完整路径。


内容的提问来源于stack exchange,提问作者Nilotpal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 04:35:12