0
点赞
收藏
分享

微信扫一扫

API 网关介绍及Spring Cloud Gateway 介绍

API 网关介绍

API 网关是一个服务器,是系统的唯一入口。从面向对象设计的角度看,它与外观模式 类似。API 网关封装了系统内部架构,为每个客户端提供一个定制的 API。它可能还具有其 它职责,如身份验证、监控、负载均衡、缓存、请求分片与管理、静态响应处理。API 网关 方式的核心要点是,所有的客户端和消费端都通过统一的网关接入微服务,在网关层处理所 有的非业务功能。通常,网关也是提供 REST/HTTP 的访问 API。
API 网关介绍及Spring Cloud Gateway 介绍_spring
网关应当具备以下功能:

  • 性能:API 高可用,负载均衡,容错机制。
  • 安全:权限身份认证、脱敏,流量清洗,后端签名(保证全链路可信调用),黑名单(非 法调用的限制)。
  • 日志:日志记录(spainid,traceid)一旦涉及分布式,全链路跟踪必不可少。
  • 缓存:数据缓存。
  • 监控:记录请求响应数据,api 耗时分析,性能监控。
  • 限流:流量控制,错峰流控,可以定义多种限流规则。
  • 灰度:线上灰度部署,可以减小风险。
  • 路由:动态路由规则。
  • 目前,比较流行的网关有:Nginx 、 Kong 、Orange 等等,还有微服务网关 Zuul 、Spring Cloud Gateway 等等。

Spring Cloud Gateway 介绍

既然有 Nginx 这样成熟的网关,那为什么还需要 Gateway 呢?
像 Nginx 这类网关,性能肯定是没得说,它适合做那种门户网关,是作为整个全局的 网关,是对外的,处于最外层的;而 Gateway 这种,更像是业务网关,主要用来对应 不同的客户端提供服务的,用于聚合业务的。各个微服务独立部署,职责单一,对外提 供服务的时候需要有一个东西把业务聚合起来。

像 Nginx 这类网关,都是用不同的语言编写的,不易于扩展;而 Gateway 就不同,它 是用 Java 写的,易于扩展和维护

Gateway 这类网关可以实现熔断、重试等功能,这是 Nginx 不具备的

Spring Cloud 已经放弃 Netflix Zuul 了。现在 Spring Cloud 中引用的还是 Zuul 1.x 版本,而这个版本是基于过滤器的,是阻塞 IO,不支持长连接。Zuul 2.x 版本跟 1.x 的架构大一样,性能也有所提升。既然 Spring Cloud 已经不再集成 Zuul 2.x 了,那么是时候开始使用 Spring Cloud Gateway 了。
API 网关介绍及Spring Cloud Gateway 介绍_spring_02


举报

相关推荐

0 条评论