KrakenD API 网关
具有中间件的超高性能 API 网关。
KrakenD 社区版(或KrakenD-CE)是 KrakenD 的二进制发行版。
在此存储库中,您将找到用于自行构建 KrakenD 二进制文件的实用程序。如果要使用 KrakenD,请下载二进制文件。
KrakenD 网站 | 文档 | 博客 | Twitter
特性
KrakenD 提供的一些功能包括:
- 超高性能 API 网关
- 前端后端
- 高效:高流量(通常小于 50 MB,并发 +1000)的超低内存消耗,低流量(小于5MB)则更低
- 易于使用:只需编写 /url/patterns/and/{variables} 即可声明端点
- 无限数量的后端和与每个端点关联的端点。限制是您的内核。
- 汇总单个端点的后端中的所有数据
- 响应组成和数据处理(捕获,分组,重命名...)
- 响应过滤(白名单和黑名单)
- 并发API调用同一请求的后端
- 配置简单:在 krakend.json 中声明的所有应用程序配置和行为。
- 友好:无需开发即可构建您的网关。使用 Visual API Designer(UI 生成 krakend.json)
- SSL 协议
- 支持 HTTP2
- 电路断路器(快速故障切换,避免粉碎受压的后端)
- 高负载时爆裂
- 使用情况的记录和统计
- 具有统计信息的 API
- 服务发现:DNS SRV、ETCD 或添加您自己的服务
- 支持多种编码(json,XML,RSS或响应作为单个字符串)
- 在配置中通过 DSL 注入(火星人)
- 节流:路由器和代理层的使用限制。
- 用户配额:通过 IP 或自定义标头限制用户的使用
- 基本防火墙:按主机限制连接,在某些限制下断开连接
- 自动负载均衡
- HTTP 缓存头
- 内存中后端响应缓存
- 多种安装选项(bin,docker,rpm,deb,brew)
- 云原生
- 受到编排器的喜爱(Kubernetes,Mesos + Marathon,Nomad,Docker Swarm 等)
- 安全:
- 支持 SSL
- OAuth 客户端授予
- JSON Web 令牌(JWT)和 JSON 对象签名和加密(JOSE)
- HTTP 严格传输安全性(HSTS)
- 点击劫持保护
- HTTP 公钥固定(HPKP)
- MIME 嗅探预防
- 跨站点脚本(XSS)保护
- 跨域资源共享(CORS)
有关功能的更详细说明,请访问网站。
网关文档
完整,全面的文档可在 KrakenD 网站上查看:
http://www.krakend.io/docs/overview/introduction/
构建要求
- golang 1.11
构建
make build
使用 Docker 构建
如果您没有安装或不想安装 go,则可以使用 golang docker 容器进行构建。
make docker_build
FPM
您可以设置 fpm docker 映像以在 Makefile 上运行设置 DOCKER_FPM。
使用生成的包
该软件包创建一个 krakend 用户来运行该服务,并将该服务配置为在 systemd 下运行。
Linux 发行版
- 只是任何 Linux(使用
tar.gz
) - ubuntu 14.04, 16.04(在 17.04/10 上应该也可以)
- Debian 7, 8, 9
- centos 6, 7
deb: ubuntu debian rpm: el6 el7 ubuntu: ubuntu-trusty ubuntu-xenial debian: debian-wheezy debian-jessie debian-stretch
(The first version translated by vz on 2020.08.01)