
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),启动时会根据环境变量和链接容器自动更新配置。




manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务