kong/kong-event-gatewayKEG(Kong Event Gateway)是一款基于Kong网关技术构建的事件网关镜像,专为事件驱动架构设计。它扩展了Kong的核心能力,专注于事件流的接收、路由、处理与分发,支持多种事件协议和后端服务集成,为微服务架构中的事件通信提供可靠、高效的基础设施。
作为微服务架构中的事件枢纽,实现服务间松耦合的异步通信,降低服务依赖复杂度。
对接Kafka、MQTT等消息系统,实时接收并路由数据流至处理服务(如流计算、实时分析引擎)。
为事件驱动应用提供标准化的事件接入、处理与分发能力,简化架构设计与运维成本。
通过docker run快速启动KEG容器:
bashdocker run -d \ --name keg \ -p 8000:8000 \ # 事件接收端口 -p 8001:8001 \ # 管理API端口 -e KONG_ADMIN_LISTEN=0.0.0.0:8001 \ -e KEG_EVENT_SOURCES="kafka:9092,http:8080" \ # 配置事件源(Kafka集群、HTTP端点等) kong/keg:latest
KEG支持通过环境变量配置核心参数,常用配置如下:
| 环境变量 | 描述 | 默认值 |
|---|---|---|
KEG_EVENT_SOURCES | 事件源列表(格式:协议:地址[,协议:地址]) | http:8080 |
KEG_ROUTE_CONFIG | 事件路由规则配置文件路径(容器内路径) | /etc/keg/routes.yaml |
KEG_PERSISTENCE_ENABLE | 是否启用事件持久化(true/false) | false |
KEG_RETRY_MAX_ATTEMPTS | 事件最大重试次数 | 3 |
KONG_ADMIN_LISTEN | Kong Admin API监听地址 | 127.0.0.1:8001 |
通过挂载路由规则配置文件(如routes.yaml)定义事件路由策略,示例:
yaml# routes.yaml routes: - name: "order-events-to-processing" match: event_type: "order.created" # 匹配事件类型为"order.created"的事件 destinations: - type: "kafka" address: "kafka:9092" topic: "order-processing" # 路由至Kafka主题"order-processing" - name: "payment-events-to-audit" match: event_source: "payment-service" # 匹配来源为"payment-service"的事件 destinations: - type: "http" address: "[***]" # 路由至HTTP服务
挂载配置文件启动容器:
bashdocker run -d \ --name keg \ -p 8000:8000 -p 8001:8001 \ -v $(pwd)/routes.yaml:/etc/keg/routes.yaml \ # 挂载本地路由配置文件 -e KEG_ROUTE_CONFIG=/etc/keg/routes.yaml \ kong/keg:latest
KEG_PERSISTENCE_ENABLE=true)并配置外部存储(如PostgreSQL)--memory、--cpus)及健康检查机制manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务