网关学习(一)基本概念

简介: 网关的基本概念

网关

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

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

作用

  1. 路由
  2. 负载均衡
  3. 统一鉴权
  4. 统一处理跨域
  5. 统一业务处理(缓存)
  6. 访问控制
  7. 发布控制
  8. 流量染色
  9. 统一接口保护
  1. 限制请求
  2. 信息脱敏
  3. 降级(熔断)

路由

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

用户a调用接口A

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

https://docs.spring.io/spring-cloud-gateway/docs/current/reference/html/#gateway-request-predicates-factories

负载均衡

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

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

uri从固定地址改成b:xx

统一鉴权

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

统一处理跨域

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

https://docs.spring.io/spring-cloud-gateway/docs/current/reference/html/#cors-configuration

统一业务处理

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

访问控制

黑白名单,比如限制ddos ip

发布控制

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

https://docs.spring.io/spring-cloud-gateway/docs/current/reference/html/#the-weight-route-predicate-factory

流量染色

区分用户来源

给请求(流量)添加一些标识,一般是设置请求头中,添加新的请求头https://docs.spring.io/spring-cloud-gateway/docs/current/reference/html/#the-addrequestheader-gatewayfilter-factory

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

接口保护

  1. 限制请求
    https://docs.spring.io/spring-cloud-gateway/docs/current/reference/html/#requestheadersiz-gatewayfilter-factory
  2. 信息脱敏
    https://docs.spring.io/spring-cloud-gateway/docs/current/reference/html/#the-removerequestheader-gatewayfilter-factory
  3. 降级(熔断) 进行兜底
    https://docs.spring.io/spring-cloud-gateway/docs/current/reference/html/#fallback-headers
  4. 限流  
    https://docs.spring.io/spring-cloud-gateway/docs/current/reference/html/#the-requestratelimiter-gatewayfilter-factory
  5. 超时时间    超时就中断
    https://docs.spring.io/spring-cloud-gateway/docs/current/reference/html/#http-timeouts-configuration
  6. 重试(业务保护):
    https://docs.spring.io/spring-cloud-gateway/docs/current/reference/html/#the-retry-gatewayfilter-factory

统一日志

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

统一文档

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

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

网关的分类

1.全局网关(接入层网关):作用是负载均衡、请求日志等,不和业务逻辑绑定2.业务网关(微服务网关):会有一些业务逻辑,作用是将请求转发到不同的业务/项目/接口/服务参考文章:https://blog.csdn.net/qq21040559/article/,details/,122961395

实现

  1. Nginx (全局网关),Kong网关(API网关),  编程成本相对较高
  2. Spring Cloud Gateway(取代了Zuul)性能高 可以用java代码来写逻辑  适于学习网关技术选型:https://zhuanlan.zhihu.com/p/500587132
  1. 限流 学习令牌桶算法,学习露桶算法,学习一下RedislimitHandler
  2. 超时时间
  3. 重试(业务保护)
  1. 统一日志
  2. 统一文档


目录
相关文章
SpringCloud学习(十七):Gateway网关的自定义全局GlobalFilter
虽然官方为Gateway提供了很多filter,但其实并不使用,我们更多的还是使用自己的配置。 在9527网关模块中新建一个filter包,在里面写一个类来实现自定义filter
165 0
SpringCloud学习(十七):Gateway网关的自定义全局GlobalFilter
|
负载均衡 监控 Java
SpringCloud学习(十六):Gateway网关的基本介绍与搭建
Gateway是在Spring生态系统之上构建的API网关服务,基于Spring 5,Spring Boot 2和 Project Reactor等技术。
404 0
SpringCloud学习(十六):Gateway网关的基本介绍与搭建
|
安全 Java Spring
|
Java Spring
|
安全 Java 微服务
spring cloud 学习(6) - zuul 微服务网关
微服务架构体系中,通常一个业务系统会有很多的微服务,比如:OrderService、ProductService、UserService...,为了让调用更简单,一般会在这些服务前端再封装一层,类似下面这样: 前面这一层俗称为“网关层”,其存在意义在于,将"1对N"问题 转换成了"1对1”问题,同时在请求到达真正的微服务之前,可以做一些预处理,比如:来源合法性检测,权限校验,反爬虫之类.
1848 0
|
2月前
|
运维 网络协议 安全
长连接网关技术专题(十):百度基于Go的千万级统一长连接服务架构实践
本文将介绍百度基于golang实现的统一长连接服务,从统一长连接功能实现和性能优化等角度,描述了其在设计、开发和维护过程中面临的问题和挑战,并重点介绍了解决相关问题和挑战的方案和实践经验。
115 1
|
6月前
|
负载均衡 应用服务中间件 API
微服务技术系列教程(25) - SpringCloud- 接口网关服务Zuul
微服务技术系列教程(25) - SpringCloud- 接口网关服务Zuul
62 0
|
5月前
|
负载均衡 Cloud Native Java
【云原生】Spring Cloud Alibaba 之 Gateway 服务网关实战开发
【云原生】Spring Cloud Alibaba 之 Gateway 服务网关实战开发
478 0
|
3月前
|
缓存 安全 API
【亿级数据专题】「高并发架构」盘点本年度探索对外服务的百万请求量的API网关设计实现
公司对外开放的OpenAPI-Server服务,作为核心内部系统与外部系统之间的重要通讯枢纽,每天处理数百万次的API调用、亿级别的消息推送以及TB/PB级别的数据同步。经过多年流量的持续增长,该服务体系依然稳固可靠,展现出强大的负载能力。
73 9
【亿级数据专题】「高并发架构」盘点本年度探索对外服务的百万请求量的API网关设计实现