微服务 API Gateway 介绍

什么是 API Gateway?

API Gateway 是微服务架构体系中的一类型特殊服务,它是所有微服务的入口,它的职责是执行路由请求、协议转换、聚合数据、认证、限流、熔断等。

一个系统可以有一个或多个 API Gateway,例如

Gateway 职责之1: 请求路由和版本控制

API Gateway 是微服务的入口,可以根据不同的请求路由到不同的 microservice 上,也可以在 Gateway 上进行路由的版本控制,这样即使后端 microservice 发生了变化,Gateway 的路径依然可以不改变。

Gateway 职责之2: 方便单体应用到微服务的过渡

借助 Gateway 你可以很方便的在 Gateway 之后部署不同的服务,也就是可以同时存在两种不同的服务,这样可以帮助单体应用向微服务渐进式的演化。

Gateway 职责之3: 权限认证

不同的服务之间常常有一些共有的逻辑需要处理,比如权限认证,由于 Gateway 恰巧在各个微服务的前端,可以在 Gateway 实现权限的认证,比如可以在 Gateway 层实现 cookie 或 token 的认证。

Gateway 职责之4: 数据聚合

由于不同的客户端往往需要的数据完全不同,而这些数据又是不同的 service 提供的,借助 Gateway 我们可以方便完成来自不同 service 的数据聚合,以达到根据不同 client 进行数据定制的目的

Gateway 职责之5: 协议转换

鉴于不同的团队采用的数据协议可能完全不同,Gateway 可以根据场景需要对不同的微服务之间进行协议转换。

Gateway 职责之6: 缓存和限流

Gateway 可以做限流和缓存

常见的 API Gateway 开源解决方案

转载自 http://www.do1618.com/archives/783/

Tyk

Github地址

Go 实现,有企业版和社区版

Docker安装测试

kong

Github地址 nginx + lua (openresty)

当前版本:Kong 0.9.5 文档

api-umbrella

官网

nginx + lua (openresty)

Github地址

apiaxle

官网

Node.js 实现

Github地址

Netflix zuul

GitHub地址

WSO2 API Manager

官网

OpenSource, Java

三月沙 wechat
扫描关注 wecatch 的公众号