网关学习(一) 基本概念及

110 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第2天,点击查看活动详情

网关

什么是网关?理解成火车站的检票口,统一 检票

网关优点: 统一进行操作,去处理一些问题

作用

  1. 路由

  2. 负载均衡

  3. 统一鉴权

  4. 统一处理跨域

  5. 统一业务处理(缓存)

  6. 访问控制

  7. 发布控制

  8. 流量染色

  9. 统一接口保护

    1. 限制请求
    2. 信息脱敏
    3. 降级(熔断)
    4. 限流 学习令牌桶算法,学习露桶算法,学习一下RedislimitHandler
    5. 超时时间
    6. 重试(业务保护)
  10. 统一日志

  11. 统一文档

路由

起到转发的作用,比如有接口A和接口B,网关会记录这些信息,根据用户访问的地址和参数,转发请求到对应的接口(服务器/集群)

用户a调用接口A

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

docs.spring.io/spring-clou…

负载均衡

在路由的基础上可以转发到某一个服务器

/c => 服务A/ 集群A(随机转发到其中的某一个机器)

uri从固定地址改成b:xx

统一鉴权

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

统一处理跨域

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

docs.spring.io/spring-clou…

统一业务处理

把每个项目中都要做的通用逻辑放到上层(网关),统一处理,比如本项目的次数统计

访问控制

黑白名单,比如限制ddos ip

发布控制

灰度发布,比如上线新接口,先给新接口分配 20%流量,老接口80% ,再慢慢调整比例

docs.spring.io/spring-clou… factory

流量染色

区分用户来源

给请求(流量)添加一些标识,一般是设置请求头中,添加新的请求头 docs.spring.io/spring-clou…

全局染色docs.spring.io/spring-clou…

接口保护

  1. 限制请求

    docs.spring.io/spring-clou…

  2. 信息脱敏

    docs.spring.io/spring-clou…

  3. 降级(熔断) 进行兜底

    docs.spring.io/spring-clou…

  4. 限流

    docs.spring.io/spring-clou…

  5. 超时时间 超时就中断

    docs.spring.io/spring-clou…

  6. 重试(业务保护):

    docs.spring.io/spring-clou…

统一日志

统一的请求,响应信息记录

统一文档

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

建议用:doc.xiaominfo.com/docs/middle…