本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
Kong Native Event Proxy 是 Kong 官方提供的原生事件代理组件,专为云原生和微服务架构设计,用于在分布式系统中实现事件流的路由、转发、过滤与处理。该镜像基于 Kong 核心技术栈构建,支持多协议事件源接入与目标服务集成,旨在简化事件驱动架构(EDA)中的事件流转管理,提升系统间异步通信的可靠性与灵活性。
官方镜像托管于 Docker Hub,默认标签为 latest(最新稳定版),可通过以下命令拉取:
docker pull kong/kong-native-event-proxy:latest
以下示例通过 docker run 启动事件代理,配置从 Kafka 事件源接收事件并转发至 HTTP 目标服务:
docker run -d \ --name kong-event-proxy \ -p 8080:8080 # 事件代理监听端口 \ -p 8001:8001 # 管理 API 端口(用于动态配置) \ -e KONG_EVENT_PROXY_LISTEN="0.0.0.0:8080" \ # 事件代理监听地址 -e KONG_EVENT_SOURCE_TYPE="kafka" \ # 事件源类型(支持 kafka/rabbitmq/http/nats) -e KONG_EVENT_SOURCE_KAFKA_BROKERS="kafka:9092" \ # Kafka broker 地址(需替换为实际地址) -e KONG_EVENT_SOURCE_KAFKA_TOPIC="user-events" \ # 监听的 Kafka 主题 -e KONG_EVENT_SOURCE_KAFKA_GROUP_ID="kong-event-proxy-group" \ # 消费者组 ID -e KONG_EVENT_TARGET_TYPE="http" \ # 目标服务类型(支持 http/grpc/kafka) -e KONG_EVENT_TARGET_HTTP_URL="[***]" \ # 目标 HTTP 服务地址 -e KONG_EVENT_ROUTE_RULE='{"type":"event_type","match":"user.created","action":"forward"}' \ # 路由规则(仅转发 event_type 为 user.created 的事件) -e KONG_ADMIN_LISTEN="0.0.0.0:8001" \ # 管理 API 监听地址(用于动态配置) --network=kong-event-network \ # 需与事件源、目标服务在同一网络(或配置外部网络访问) kong/kong-native-event-proxy:latest
通过 docker-compose.yml 定义完整部署栈(含事件源 Kafka、目标服务、事件代理):
version: "3.8" networks: kong-event-network: driver: bridge services: # Kafka 事件源(示例,实际环境可替换为已有 Kafka 集群) zookeeper: image: confluentinc/cp-zookeeper:7.3.0 environment: ZOOKEEPER_CLIENT_PORT: 2181 ZOOKEEPER_TICK_TIME: 2000 networks: - kong-event-network kafka: image: confluentinc/cp-kafka:7.3.0 depends_on: - zookeeper environment: KAFKA_BROKER_ID: 1 KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092,PLAINTEXT_HOST://localhost:29092 KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 networks: - kong-event-network # 目标 HTTP 服务(示例,实际替换为业务服务) backend-service: image: nginx:alpine volumes: - ./backend-nginx.conf:/etc/nginx/nginx.conf # 简单 HTTP 服务配置,接收事件并返回 200 ports: - "8081:8080" networks: - kong-event-network # Kong Native Event Proxy kong-event-proxy: image: kong/kong-native-event-proxy:latest depends_on: - kafka - backend-service ports: - "8080:8080" # 事件代理端口 - "8001:8001" # 管理 API 端口 environment: # 基础配置 KONG_EVENT_PROXY_LISTEN: "0.0.0.0:8080" KONG_ADMIN_LISTEN: "0.0.0.0:8001" # 事件源配置(Kafka) KONG_EVENT_SOURCE_TYPE: "kafka" KONG_EVENT_SOURCE_KAFKA_BROKERS: "kafka:9092" KONG_EVENT_SOURCE_KAFKA_TOPIC: "user-events" KONG_EVENT_SOURCE_KAFKA_GROUP_ID: "kong-event-proxy-group" KONG_EVENT_SOURCE_KAFKA_AUTO_OFFSET_RESET: "earliest" # 从最早 offset 开始消费 # 事件目标配置(HTTP) KONG_EVENT_TARGET_TYPE: "http" KONG_EVENT_TARGET_HTTP_URL: "[***]" KONG_EVENT_TARGET_HTTP_TIMEOUT: "5000" # 超时时间(毫秒) # 事件路由规则(JSON 格式,支持多规则) KONG_EVENT_ROUTE_RULES: | [ {"id": "rule1", "type": "event_type", "match": "user.created", "action": "forward"}, {"id": "rule2", "type": "event_type", "match": "order.paid", "action": "forward"} ] # 事件处理配置(过滤无效事件) KONG_EVENT_FILTER_RULE: '{"type": "payload_schema", "schema": {"required": ["id", "timestamp"]}}' # 仅保留含 id 和 timestamp 字段的事件 networks: - kong-event-network
| 环境变量名 | 描述 | 默认值 | 示例值 |
|---|---|---|---|
KONG_EVENT_PROXY_LISTEN | 事件代理服务监听地址(格式:IP:PORT) | 0.0.0.0:8080 | 0.0.0.0:9000 |
KONG_ADMIN_LISTEN | 管理 API 监听地址(用于动态配置路由规则) | 0.0.0.0:8001 | 0.0.0.0:9001 |
KONG_EVENT_SOURCE_TYPE | 事件源类型(支持 kafka/rabbitmq/http/nats) | - | kafka |
KONG_EVENT_TARGET_TYPE | 目标服务类型(支持 http/grpc/kafka/rabbitmq) | - | http |
KONG_EVENT_ROUTE_RULES | 事件路由规则(JSON 数组,支持多规则),格式:[{"id": "rule1", "type": "event_type", "match": "user.created", "action": "forward"}] | - | 见 5.3 示例中的 JSON 数组 |
KONG_EVENT_RETRY_ENABLED | 是否启用事件重试(失败事件缓存并重试) | true | false |
KONG_EVENT_RETRY_MAX_ATTEMPTS | 最大重试次数 | 3 | 5 |
| 环境变量名 | 描述 | 示例值 |
|---|---|---|
KONG_EVENT_SOURCE_KAFKA_BROKERS | Kafka Broker 地址列表(逗号分隔) | kafka-1:9092,kafka-2:9092 |
KONG_EVENT_SOURCE_KAFKA_TOPIC | 监听的 Kafka 主题(支持单个主题) | user-events |
KONG_EVENT_SOURCE_KAFKA_GROUP_ID | 消费者组 ID | kong-event-group |
KONG_EVENT_SOURCE_KAFKA_AUTO_OFFSET_RESET | 初始 offset 位置(earliest/latest) | earliest |
| 环境变量名 | 描述 | 示例值 |
|---|---|---|
KONG_EVENT_SOURCE_HTTP_PATH | WebHook 接收路径(需与事件源发送地址匹配) | /webhook/events |
KONG_EVENT_SOURCE_HTTP_METHODS | 允许的 HTTP 方法(逗号分隔) | POST,PUT |
KONG_EVENT_SOURCE_HTTP_AUTH_TOKEN | WebHook 认证 Token(可选,事件源需在请求头中携带 Authorization: Bearer <token>) | secret-token-123 |
事件路由规则支持通过管理 API 实时更新,无需重启服务。示例:
# 添加新路由规则(转发 event_type=order.refund 的事件) curl -X POST http://localhost:8001/event-proxy/routes \ -H "Content-Type: application/json" \ -d '{ "id": "rule3", "type": "event_type", "match": "order.refund", "action": "forward", "target_type": "kafka", "target_kafka_topic": "refund-events" }' # 查看所有路由规则 curl http://localhost:8001/event-proxy/routes
docker network connect 手动连接网络。--cpus=2 --memory=2G),避免因资源不足导致事件丢失。v1.0.0)而非 latest,避免自动升级引发兼容性问题。/etc/kong/event-proxy.conf)管理配置,避免环境变量过多。免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429