微服务——API网关

47人浏览

什么是API网关

API网关(API Gateway)是应用服务之前的系统,用来代理业务系统的服务API,在网关层处理所有的非业务功能,实现管理授权、访问控制和流量限制等功能。这样业务系统就可以专注于业务,而不用去处理这些策略性的基础功能。在SOA时代就已经有ESB(EnterpriseService Bus 企业服务总线)形式的API网关,ESB功能比较重,存在单点问题。

微服务网关 是微服务形式的API网关,承担部分轻量的ESB总线能力,实现对外能力开放。主要优势是通过注册中心实现服务注册、服务发现和智能路由。

API网关作用

  • 统一REST API接口标准,跨不同语言应用系统(Java、.NET、Python 。。)

  • 统一API接入点、统一接口管理,实现动态路由

  • 统一中间策略,安全、验证、路由、过滤、流控、缓存等

  • 网关层服务映射,减少客户端与服务的耦合,服务可以独立发展

  • 为服务熔断,灰度发布,线上测试提供方案

  • 跨团队协作需要通过网关暴露部分接口

API网关实施

  • Kong 基于Nginx+Lua开发,有免费插件,实现复杂场景需要自行二次开发。

    • https://konghq.com/

  • Zuul 是spring cloud的一个组件,基于java Servlet的方案。

    • https://github.com/Netflix/zuul