Repolode
krakend

krakend/krakend-ce

用 Go 编写的高性能、无状态、声明式 API 网关,用于路由、聚合和保护对后端微服务的调用。

可替代:Kong GatewayApigee

Star
2,695
Fork
502
未关闭 Issue
38
最近提交
13小时前

这是什么?

KrakenD 是一个部署在服务前面的 API 网关,客户端只需访问一个入口,网关即可把请求分发到多个后端服务。配置采用声明式方式,通常是一份 JSON 文件,适合 GitOps 工作流,新增 API 时无需修改已有服务的接口契约。

网关支持内容聚合与过滤、XML 与 JSON 之间的格式转换以及并发调用后端。安全方面提供 JWT、OAuth、CORS 以及一组 HTTP 安全响应头。在网关与服务之间还支持限流、节流、熔断和负载均衡。

项目采用无状态设计,每个节点可独立运行,无需协调或集中存储,便于水平扩展。遥测方面可对接 Prometheus、Grafana、Datadog、Zipkin 和 Jaeger;自定义逻辑可通过 Lua 脚本或 Google CEL 表达式实现。本项目是 Apache 2.0 许可的社区版,提供 Docker 镜像和预编译二进制文件。

核心功能

  • 01采用声明式 JSON 配置,适合 GitOps 工作流。
  • 02将多个后端服务的响应聚合、过滤到同一个入口。
  • 03支持 XML 与 JSON 之间的格式转换。
  • 04内置 JWT、OAuth、CORS 及 HTTP 安全响应头。
  • 05提供限流、节流、熔断和负载均衡。
  • 06可将遥测数据导出到 Prometheus、Grafana、Datadog、Zipkin 和 Jaeger。
  • 07通过 Lua 脚本或 Google CEL 表达式实现自定义逻辑。

适用场景

  • 在多个微服务前面提供统一的对外 API。
  • 为 Web 或移动端构建定制化的 BFF(Backend For Frontend)接口。
  • 让客户端与后端服务解耦,使两者可以独立演进。
  • 在 Kubernetes 或本地机房中部署无状态网关。

快速上手

  1. 1

    运行官方 KrakenD Docker 镜像

    docker run -it -p "8080:8080" krakend
  2. 2

    访问 localhost:8080/__health 检查网关健康状态

  3. 3

    使用 make 从源码构建二进制文件(需要 Go)

    make build

使用前须知

  • 社区版已移除插件支持;Go 插件需使用企业版或自行编译。
  • 安全修复仅发布在 3.x 版本,不会回移植到 2.13。

标签

常见问题

krakend-ce 是什么?
用 Go 编写的高性能、无状态、声明式 API 网关,用于路由、聚合和保护对后端微服务的调用。 KrakenD 是一个部署在服务前面的 API 网关,客户端只需访问一个入口,网关即可把请求分发到多个后端服务。配置采用声明式方式,通常是一份 JSON 文件,适合 GitOps 工作流,新增 API 时无需修改已有服务的接口契约。
krakend-ce 可以免费使用吗?用的什么许可证?
krakend-ce 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
krakend-ce 还在维护吗?
活跃维护中。krakend-ce 最近一次提交是在 2026年10月21日。
krakend-ce 适合用来做什么?
在多个微服务前面提供统一的对外 API。 为 Web 或移动端构建定制化的 BFF(Backend For Frontend)接口。 让客户端与后端服务解耦,使两者可以独立演进。 在 Kubernetes 或本地机房中部署无状态网关。
krakend-ce 怎么安装和运行?
运行官方 KrakenD Docker 镜像: docker run -it -p "8080:8080" krakend 访问 localhost:8080/__health 检查网关健康状态 使用 make 从源码构建二进制文件(需要 Go): make build
在哪里获取 krakend-ce?
源代码和安装说明在 GitHub 上:https://github.com/krakend/krakend-ce

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目