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

Docker环境下带SSL的Kafka:如何通过命令行读写Topic?

在启用SSL的Docker Kafka环境中通过命令行进行Topic读写操作

没问题,基于你当前的Docker环境(运行着cp-kafka:4.0.0容器,名字是k1),我来一步步教你怎么用命令行操作Kafka Topic的读写——因为你的Kafka启用了SSL,所以得额外带上SSL相关的配置参数才行。

一、前提说明

你的Kafka容器映射了9092(普通端口)和9093(SSL端口),我们主要用9093端口来进行SSL加密连接。

二、方式1:直接通过Docker Exec执行命令(推荐)

这种方式不需要在宿主机安装Kafka客户端,直接利用容器内的Kafka工具操作。

1. 创建Topic(如果还未创建)

首先要确认ZooKeeper的地址(如果是Confluent集群部署,通常ZooKeeper容器名是zookeeper,地址为zookeeper:2181),执行创建命令:

docker exec k1 kafka-topics --create \
  --zookeeper zookeeper:2181 \
  --replication-factor 1 \
  --partitions 1 \
  --topic test-ssl-topic

验证Topic是否创建成功:

docker exec k1 kafka-topics --list --zookeeper zookeeper:2181

2. 向Topic写入消息(生产者)

因为启用了SSL,需要指定容器内的生产者SSL配置文件(通常是挂载的secrets目录下的配置),执行命令进入交互模式:

docker exec k1 kafka-console-producer --broker-list localhost:9093 \
  --topic test-ssl-topic \
  --producer.config /etc/kafka/secrets/producer.properties

进入后直接输入消息回车即可发送,比如输入Hello SSL Kafka!,按Ctrl+C退出交互。

3. 从Topic读取消息(消费者)

同样需要指定消费者的SSL配置文件,执行命令读取消息(--from-beginning会读取Topic所有历史消息):

docker exec k1 kafka-console-consumer --bootstrap-server localhost:9093 \
  --topic test-ssl-topic \
  --from-beginning \
  --consumer.config /etc/kafka/secrets/consumer.properties

你会看到刚才发送的Hello SSL Kafka!,按Ctrl+C退出。

三、方式2:在宿主机上用Kafka客户端执行命令

如果你的宿主机已经安装了Kafka客户端,需要先把容器内的SSL配置文件复制到本地:

docker cp k1:/etc/kafka/secrets/truststore.jks ./
docker cp k1:/etc/kafka/secrets/producer.properties ./
docker cp k1:/etc/kafka/secrets/consumer.properties ./

然后修改本地配置文件,把证书路径改成宿主机的本地路径(比如把producer.properties里的ssl.truststore.location改为./truststore.jks),之后就可以直接在宿主机执行:

生产者命令

kafka-console-producer --broker-list localhost:9093 \
  --topic test-ssl-topic \
  --producer.config ./producer.properties

消费者命令

kafka-console-consumer --bootstrap-server localhost:9093 \
  --topic test-ssl-topic \
  --from-beginning \
  --consumer.config ./consumer.properties

注意事项

  • 确保容器内的SSL配置文件路径正确,如果你的部署路径不同,需要替换成实际路径。
  • 如果ZooKeeper不在同一个Docker网络,需要把zookeeper:2181替换成实际的ZooKeeper地址和端口。
  • 若遇到SSL连接错误,检查配置文件里的security.protocol=SSL、证书路径和密码是否正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:15:03