介绍

顾名思义,是出现在系统边界上的一个面向API的、串行集中式的强管控服务,这里的边界是企业IT系统的边界,主要起到隔离外部访问与内部系统的作用。

参考资料

浅谈微服务架构下的API网关

统一开发框架——API网关构建微服务

谈谈微服务中的 API 网关(API Gateway)

单节点场景

多节点场景

网关作用

  • 统一入口

  • 安全:黑名单、权限身份认证

  • 限流:实现微服务访问流量计算,基于流量计算分析进行限流,可以定义多种限流规则。

  • 缓存:数据缓存

  • 日志:日志记录

  • 监控:记录请求响应数据,api耗时分析,性能监控

  • 重试:异常重试

  • 熔断: 降级

现有框架

  • Tyk:Tyk是一个开放源码的API网关,它是快速、可扩展和现代的。Tyk提供了一个API管理平台,其中包括API网关、API分析、开发人员门户和API管理面板。Trk是一个基于Go实现的网关服务。

  • Kong:Kong是一个可扩展的开放源码API Layer(也称为API网关或API中间件)。Kong在任何RESTfulAPI的前面运行,通过插件扩展,它提供了超越核心平台的额外功能和服务。

  • Orange:和Kong类似也是基于OpenResty的一个API网关程序,是由国人开发的。

  • Netflixzuul:Zuul是一种提供动态路由、监视、弹性、安全性等功能的边缘服务。Zuul是Netflix出品的一个基于JVM路由和服务端的负载均衡器。

  • apiaxle:Nodejs实现的一个API网关。

  • api-umbrella: Ruby实现的一个API网关。

技术选型

目前流行两层两者相结合的网关

  • Zuul

    • 重试、熔断

    • 业务,微服务,用户权限验证,微服务之间鉴权

  • Nginx+lua (kong,orange)

    • 做一些限流

    • 用户权限验证

    • 不涉及业务,公用的网关功能

Last updated

Was this helpful?