API网关

什么是API网关

API网关是一个服务器,是系统的惟一入口。从面向对象设计的角度看,它与外观模式相似。API网关封装了系统内部架构,为每一个客户端提供一个定制的API。它可能还具备其它职责,如身份验证、监控、负载均衡、缓存、请求分片与管理、静态响应处理。
API网关方式的核心要点是,全部的客户端和消费端都经过统一的网关接入微服务,在网关层处理全部的非业务功能。一般,网关也是提供REST/HTTP的访问API。服务端经过API-GW注册和管理服务。跨域

API网关解决的问题

  • 客户端请求多个微服务,增长客户端复杂度
  • 存在跨域,认证不统一问题
  • 与微服务耦合太强,微服务变动,客户端须要变动

如何构建API网关

API网关的做用

API网关所处的位置一般为:缓存

 
 
客户端
统一API网关
内部微服务

使用API网关的好处:安全

  • 易于监控
  • 统一认证
  • 减小客户端与微服务交互,解耦接口依赖

网关大体分类服务器

单节点API网关

Backends for frontends网关

 

开源网关

Netflix Zuul是一种提供动态路由、监视、弹性、安全性等功能的边缘服务。Zuul是Netflix出品的一个基于JVM路由和服务端的负载均衡器(Spring Cloud使用)。架构

提供能力:负载均衡

  • 身份认证与安全
  • 审查与监控
  • 动态路由
  • 压力测试
  • 负载分配
  • 静态响应处理

 

API网关存在的问题及解决方案

问题

  • 拿单节点网关来讲,这种网关至关因而处于 Web 层和 Service 之间,用来聚合服务的?注意,咱们须要的是聚合服务,而以上这些开源项目都不具有这个功能,我说的聚合具体指的是开箱即用。
  • 除了单点问题,还有一个问题,网关须要承担日志,监控,安全,服务发现,版本控制等,甚至超时,熔断,重试,聚合查询等职能,这很容易形成性能问题。

 

解决方案

单点问题:Keepalived + LVS 保证一个网关挂掉时,迅速进行失效转移
性能问题:双重网关(双重网关,外部网关处理安全,认证,限流,监控,日志等,内部网关处理缓存,重试,熔断等)frontend

相关文章
相关标签/搜索