spring cloud gateway

API网关是一个服务器,是系统的唯一入口。从面向对象设计的角度看,它与外观模式类似。API网关方式的核心要点,是所有的客户端和消费端都通过统一的网关接入微服务,在网关层处理所有的非业务功能,通常网关提供REST/HTTP的访问API。

网关一般具备以下功能:
性能:API高可用,负载均衡,容错机制。
安全:权限身份认证、脱敏,流量清洗,后端签名(保证全链路可信调用),黑名单(非法调用的限制)。
日志:日志记录(spainid,traceid)一旦涉及分布式,全链路跟踪必不可少。
缓存:数据缓存。
监控:记录请求响应数据,api耗时分析,性能监控。
限流:流量控制,错峰流控,可以定义多种限流规则。
灰度:线上灰度部署,可以减小风险。
路由:动态路由规则。
过滤:例如鉴权之后构造头部,增加请求头、增加请求参数、增加响应头和断路器等。

API Gateway 常见的选型有基于 Openresty 的 Kong、基于 Go 的 Tyk 和基于 Java 的 Zuul、Spring Cloud Gateway。Nginx适合做门户网关,是作为整个全局的网关,是对外的,处于最外层的;而Gateway更像是业务网关,主要用来对应不同的客户端提供服务的,用于聚合业务的。各个微服务独立部署,职责单一,对外提供服务的时候需要有一个东西把业务聚合起来。Gateway是用Java写的,易于扩展和维护,Gateway网关可以实现熔断、重试等功能,这是Nginx不具备的。

面试题
https://www.kuibuke.com/exam
https://www.cnblogs.com/goody9807/p/6425399.html

发表评论