debezium/kafka该镜像为 Debezium 平台的核心组件,用于提供 Kafka 服务。仓库已迁移至 quay.io/debezium/kafka。
Kafka 是一个分布式、分区、复制的提交日志服务,作为 Debezium 平台的基础组件,用于存储数据库变更事件流。Debezium 连接器监控数据库并将行级变更事件写入 Kafka 主题,客户端应用通过消费相关 Kafka 主题接收和处理变更事件。
适用于单主机部署,用于 Debezium 平台的简单评估和功能验证,快速搭建包含 Zookeeper、Kafka 和 Debezium 连接器的本地环境。
需通过多实例部署提供性能、可靠性和容错能力,可结合 OpenShift 等容器编排平台管理多主机上的容器集群。注意:高吞吐量场景建议参考 Kafka 官方文档,在专用硬件上部署 Kafka。
需提前部署 Zookeeper 服务,可通过容器(名称为 zookeeper)或 OpenShift 服务(名称为 zookeeper)提供。
bashdocker run -it --name kafka -p 9092:9092 --link zookeeper:zookeeper quay.io/debezium/kafka
-it:交互式运行并附加控制台,用于查看 broker 输出和错误日志;--name kafka:指定容器名称为 kafka;-p 9092:9092:映射容器 9092 端口到主机;--link zookeeper:zookeeper:链接 Zookeeper 容器,使 Kafka 可访问 Zookeeper 服务。使用 -d 替换 -it 以 detached 模式启动:
bashdocker run -d --name kafka -p 9092:9092 --link zookeeper:zookeeper quay.io/debezium/kafka
查看日志:
bashdocker logs --follow --name kafka # 实时跟踪日志输出
通过临时容器在运行的 Kafka 集群上创建主题:
bashdocker run -it --rm --link zookeeper:zookeeper quay.io/debezium/kafka create-topic [-p numPartitions] [-r numReplicas] [-c cleanupPolicy] topic-name
topic-name:主题名称(必填);-p numPartitions:分区数(默认 1);-r numReplicas:副本数(默认 1);-c cleanupPolicy:清理策略(delete 或 compact,默认 delete)。compact 的主题 db_changes:
bashdocker run -it --rm --link zookeeper:zookeeper quay.io/debezium/kafka create-topic -p 3 -r 1 -c compact db_changes
通过临时容器监控指定主题的消息:
bashdocker run -it --rm --link zookeeper:zookeeper --link kafka:kafka quay.io/debezium/kafka watch-topic [-a] [-k] [-m minBytes] topic-name
topic-name:主题名称(必填);-a:从主题起始位置显示所有消息;-k:显示消息键(默认不显示);-m minBytes:指定最小拉取字节数(默认 1)。db_changes 主题,显示所有消息及键:
bashdocker run -it --rm --link zookeeper:zookeeper --link kafka:kafka quay.io/debezium/kafka watch-topic -a -k db_changes
通过临时容器列出所有主题:
bashdocker run -it --rm --link zookeeper:zookeeper quay.io/debezium/kafka list-topics
以下为包含 Zookeeper 和 Kafka 的本地部署示例:
yamlversion: '3' services: zookeeper: image: debezium/zookeeper:latest ports: - "2181:2181" environment: - ZOOKEEPER_CLIENT_PORT=2181 # Zookeeper 客户端端口 kafka: image: quay.io/debezium/kafka:latest ports: - "9092:9092" links: - zookeeper:zookeeper # 链接 Zookeeper 服务 environment: - BROKER_ID=1 # 唯一 broker ID - ZOOKEEPER_CONNECT=zookeeper:2181 # Zookeeper 连接地址 - HOST_NAME=kafka # 绑定主机名 - ADVERTISED_HOST_NAME=localhost # 客户端连接用主机名 - HEAP_OPTS=-Xmx512M -Xms512M # JVM 堆内存配置 - CREATE_TOPICS=test_topic:3:1:delete # 启动时创建主题(名称:分区数:副本数:清理策略)
| 环境变量 | 作用说明 | 默认值 |
|---|---|---|
BROKER_ID | broker 唯一标识符,集群中需唯一 | 1 |
ZOOKEEPER_CONNECT | Zookeeper 连接地址(格式参考 Kafka zookeeper.connect 属性) | 链接 zookeeper 容器时自动配置 |
HOST_NAME | broker 绑定的主机名 | 容器主机名 |
ADVERTISED_HOST_NAME | 注册到 Zookeeper 的客户端连接主机名,默认使用 HOST_NAME 的值 | HOST_NAME 的值 |
HEAP_OPTS | JVM 堆内存配置 | -Xmx1G -Xms1G |
CREATE_TOPICS | 启动时自动创建的主题列表,格式:topic:partitions:replicas[:cleanupPolicy] | 无 |
LOG_LEVEL | 日志级别(INFO/WARN/ERROR/DEBUG/TRACE) | INFO |
以 KAFKA_ 为前缀的环境变量会自动转换为 Kafka 配置属性,转换规则:
KAFKA_ 前缀;_ 转为点 .。示例:
KAFKA_ADVERTISED_HOST_NAME → advertised.host.name
KAFKA_AUTO_CREATE_TOPICS_ENABLE → auto.create.topics.enable
注意:环境变量值中不可包含
@字符。
容器暴露 Kafka 标准端口 9092,可通过 -p 参数映射到主机端口(如 -p 9093:9092 将容器 9092 端口映射到主机 9093 端口)。
/kafka/data)/kafka/data/<BROKER_ID>/。-v /host/kafka/data:/kafka/data),否则容器停止后数据丢失。/kafka/logs)server.log:控制台输出日志;state-change.log:控制器与 broker 状态变更记录;kafka-request.log:请求处理记录;log-cleaner.log:日志压缩详情;controller.log:控制器活动日志(如分区 leader 选举)。-v /host/kafka/logs:/kafka/logs)持久化日志。/kafka/config)server.properties),启动时会根据环境变量和链接容器自动更新配置。探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务