如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
该镜像为 Debezium 平台的核心组件,用于提供 Kafka 服务。仓库已迁移至 quay.io/debezium/kafka。
Kafka 是一个分布式、分区、复制的提交日志服务,作为 Debezium 平台的基础组件,用于存储数据库变更事件流。Debezium 连接器监控数据库并将行级变更事件写入 Kafka 主题,客户端应用通过消费相关 Kafka 主题接收和处理变更事件。
适用于单主机部署,用于 Debezium 平台的简单评估和功能验证,快速搭建包含 Zookeeper、Kafka 和 Debezium 连接器的本地环境。
需通过多实例部署提供性能、可靠性和容错能力,可结合 OpenShift 等容器编排平台管理多主机上的容器集群。注意:高吞吐量场景建议参考 Kafka 官方文档,在专用硬件上部署 Kafka。
需提前部署 Zookeeper 服务,可通过容器(名称为 zookeeper)或 OpenShift 服务(名称为 zookeeper)提供。
4.2.1 前台运行
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 服务。4.2.2 后台运行
使用 -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),启动时会根据环境变量和链接容器自动更新配置。以下是 debezium/kafka 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务