Bootstrap

网关的作用


网关优点: 最大的优点就是统一,统一进行操作,统一去处理一些问题

下面介绍网关的作用:

实现均是基于Spring Cloud Gateway

1.路由

路由:起到转发的作用,比如有接口A和接口B,网关会记录这些信息,根据用户访问的地址和参数,转发请求到对应的接口,比如:

/a => 接口A
/b => 接口B

实现:路由

2.负载均衡

负载均衡:在路由的基础上可以转发到集群的某一个服务器

3.统一鉴权

判断用户是否有权限进行操作,无论访问什么接口,我都统一去判断权限,不用重复写

4.统一处理跨域

网关统一处理跨域,不用在每个项目单独处理

实现:处理跨域

5.统一业务处理

把每个项目中都要做的通用逻辑放到网关中,统一进行处理

6.访问控制

黑白名单,白名单允许访问,黑名单拒绝访问

7.发布控制

灰度发布。比如上线新接口,先给新接口分配 20%流量,老接口80% ,再慢慢调整比例,使新接口的比例逐渐增长。

实现:weight-route-predicate-factory

8.流量染色

流量染色,给请求(流量)添加一些标识,一般是设置在请求头中,即添加新的请求头。

使用场景:

  • 区分用户来源。为了区分 通过网关访问接口 和 绕过网关直接访问接口,网关会给请求加一个请求头(如 source=gateway),带有这个请求头则允许访问,而绕过网关直接访问接口的请求没有这个请求头,会被拒绝。

  • 链路追踪。通过给请求打标签,从而追踪整个请求的调用链路。

实现:addrequestheader-gatewayfilter-factory

全局染色:https://docs.spring.io/spring-cloud-gateway/docs/current/reference/html/#default-filters

9.接口保护

1)限制请求

限制请求:限制请求大小

实现:

限制请求头大小

限制请求大小

2)信息脱敏

信息脱敏:比如响应头中有服务器 ip 等敏感信息,网关可以将相关字段从响应头中移除。

实现:removerequestheader-gatewayfilter-factory

3)降级(熔断)

降级:简单来说就是,服务出现异常时,执行备选的逻辑,即有一个兜底的方法。

实现:fallback-headers

4)限流

限流:限制请求的流量大小。

实现:requestratelimiter-gatewayfilter-factory

5)超时时间

超时时间:包括 连接超时时间 和 响应超时时间

实现:http-timeouts-configuration

6)重试(业务保护)

重试:当请求失败,会进行重试

实现:retry-gatewayfilter-factory

10.统一日志

统一记录日志,包括请求日志和响应日志。

11.统一文档

将下游项目的文档进行聚合,在一个页面统一查看,如接口文档

建议用:https://doc.xiaominfo.com/docs/middleware-sources/aggregation-introduction


如果有帮助的话,可以点个赞支持一下嘛🙏

;