
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Kafka Gateway是一款轻量级中间件,作为Kafka集群的统一入口网关,旨在简化外部应用与Kafka的集成过程。通过提供标准化接入点,该镜像实现了协议转换、请求路由、负载均衡及安全管控等核心能力,有效降低直接访问Kafka集群的复杂性,同时增强系统的可管理性、安全性和扩展性。
通过docker run快速启动单节点Kafka Gateway:
bashdocker run -d \ --name kafka-gateway \ -p 8080:8080 \ # HTTP协议端口 -p 1883:1883 \ # MQTT协议端口(如启用) -e KAFKA_BROKERS=kafka1:9092,kafka2:9092 \ # Kafka集群broker列表(必填) -e PROTOCOL_TYPE=HTTP,MQTT \ # 启用的协议类型,多协议用逗号分隔 -e AUTH_ENABLED=true \ # 启用Basic Auth认证 -e AUTH_USERNAME=admin \ # 认证用户名 -e AUTH_PASSWORD=secure-pass \ # 认证密码 -e TLS_ENABLED=true \ # 启用TLS加密 -e TLS_CERT_PATH=/etc/certs/server.crt \ # 挂载的TLS证书路径 -e TLS_KEY_PATH=/etc/certs/server.key \ # 挂载的TLS私钥路径 -v ./local-certs:/etc/certs \ # 挂载本地证书目录至容器 kafka-gateway:latest
通过docker-compose部署包含Kafka集群与网关的完整环境(示例):
yamlversion: '3.8' services: # Kafka集群(示例) zookeeper: image: docker.xuanyuan.run/confluentinc/cp-zookeeper:latest environment: ZOOKEEPER_CLIENT_PORT: 2181 ZOOKEEPER_TICK_TIME: 2000 ports: - "2181:2181" kafka1: image: docker.xuanyuan.run/confluentinc/cp-kafka:latest depends_on: - zookeeper environment: KAFKA_BROKER_ID: 1 KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka1:9092 KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 kafka2: image: docker.xuanyuan.run/confluentinc/cp-kafka:latest depends_on: - zookeeper environment: KAFKA_BROKER_ID: 2 KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka2:9092 KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 # Kafka Gateway服务 kafka-gateway: image: docker.xuanyuan.run/kafka-gateway:latest depends_on: - kafka1 - kafka2 ports: - "8080:8080" # HTTP API端口 - "9090:9090" # Prometheus metrics端口 environment: KAFKA_BROKERS: kafka1:9092,kafka2:9092 # Kafka集群地址 PROTOCOL_TYPE: HTTP # 启用HTTP协议 AUTH_ENABLED: true # 启用Basic Auth AUTH_USERNAME: admin AUTH_PASSWORD: secure-pass LOG_LEVEL: INFO # 日志级别 METRICS_PORT: 9090 # metrics暴露端口 restart: unless-stopped
| 参数名 | 描述 | 类型 | 默认值 | 必填项 | 示例值 |
|---|---|---|---|---|---|
| KAFKA_BROKERS | Kafka broker地址列表 | 字符串 | - | 是 | kafka1:9092,kafka2:9092 |
| PROTOCOL_TYPE | 支持的协议类型(逗号分隔) | 字符串 | HTTP | 否 | HTTP,MQTT |
| AUTH_ENABLED | 是否启用Basic Auth认证 | 布尔值 | false | 否 | true |
| AUTH_USERNAME | 认证用户名(AUTH_ENABLED=true时) | 字符串 | - | 条件 | admin |
| AUTH_PASSWORD | 认证密码(AUTH_ENABLED=true时) | 字符串 | - | 条件 | secure-pass |
| TLS_ENABLED | 是否启用TLS加密 | 布尔值 | false | 否 | true |
| TLS_CERT_PATH | TLS证书路径(TLS_ENABLED=true时) | 字符串 | - | 条件 | /etc/certs/server.crt |
| TLS_KEY_PATH | TLS私钥路径(TLS_ENABLED=true时) | 字符串 | - | 条件 | /etc/certs/server.key |
| LOG_LEVEL | 日志级别 | 字符串 | INFO | 否 | DEBUG |
| METRICS_PORT | Prometheus metrics暴露端口 | 整数 | 9090 | 否 | 9090 |
| CACHE_TTL | 路由规则缓存有效期 | 字符串 | 60s | 否 | 30s |
通过HTTP协议发送消息至Kafka
使用Basic Auth认证发送消息到指定Kafka主题:
bashcurl -X POST http://localhost:8080/api/v1/messages \ -H "Content-Type: application/json" \ -u admin:secure-pass \ -d '{ "topic": "user-tracking", "message": "{\"user_id\": 123, \"action\": \"login\"}", "partition": 0 # 可选,指定分区 }'
通过HTTP协议消费Kafka消息
从指定主题消费消息(支持批量拉取):
bashcurl -X GET "http://localhost:8080/api/v1/messages/user-tracking?limit=10" \ -u admin:secure-pass
响应示例:
json{ "topic": "user-tracking", "messages": [ {"offset": 0, "partition": 0, "timestamp": 1690000000000, "value": "{\"user_id\": 123, \"action\": \"login\"}"}, {"offset": 1, "partition": 0, "timestamp": 1690000001000, "value": "{\"user_id\": 456, \"action\": \"logout\"}"} ] }
监控指标访问
通过Prometheus metrics端口获取网关运行指标:
bashcurl http://localhost:9090/metrics
关键指标包括:请求吞吐量、消息转发延迟、Kafka连接状态等。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务