网关学习(一)基本概念

简介: 网关的基本概念

网关

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

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

作用

  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. 统一文档


目录
相关文章
|
2月前
|
前端开发 Java API
vertx学习总结5之回调函数及其限制,如网关/边缘服务示例所示未来和承诺——链接异步操作的简单模型响应式扩展——一个更强大的模型,特别适合组合异步事件流Kotlin协程
本文是Vert.x学习系列的第五部分,讨论了回调函数的限制、Future和Promise在异步操作中的应用、响应式扩展以及Kotlin协程,并通过示例代码展示了如何在Vert.x中使用这些异步编程模式。
51 5
vertx学习总结5之回调函数及其限制,如网关/边缘服务示例所示未来和承诺——链接异步操作的简单模型响应式扩展——一个更强大的模型,特别适合组合异步事件流Kotlin协程
SpringCloud学习(十七):Gateway网关的自定义全局GlobalFilter
虽然官方为Gateway提供了很多filter,但其实并不使用,我们更多的还是使用自己的配置。 在9527网关模块中新建一个filter包,在里面写一个类来实现自定义filter
223 0
SpringCloud学习(十七):Gateway网关的自定义全局GlobalFilter
|
负载均衡 监控 Java
SpringCloud学习(十六):Gateway网关的基本介绍与搭建
Gateway是在Spring生态系统之上构建的API网关服务,基于Spring 5,Spring Boot 2和 Project Reactor等技术。
772 0
SpringCloud学习(十六):Gateway网关的基本介绍与搭建
|
安全 Java Spring
|
Java Spring
|
监控 安全 Java
网关基本概念 | 学习笔记
快速学习 网关基本概念
292 0
网关基本概念 | 学习笔记
|
开发框架 Kubernetes Cloud Native
ASP.NET Core on K8S深入学习(13)Ocelot API网关接入
本文介绍了如何在K8s集群中接入基于Ocelot的API网关服务来替代Ingress作为K8s集群API服务的统一入口,虽然示例很简单,但是基本的介绍目的已经达到了。在此,也特别感谢Ocelot的贡献者们,以及张队贡献的这个集成K8s的 Provider。
1713 0
|
安全 Java 微服务
spring cloud 学习(6) - zuul 微服务网关
微服务架构体系中,通常一个业务系统会有很多的微服务,比如:OrderService、ProductService、UserService...,为了让调用更简单,一般会在这些服务前端再封装一层,类似下面这样: 前面这一层俗称为“网关层”,其存在意义在于,将"1对N"问题 转换成了"1对1”问题,同时在请求到达真正的微服务之前,可以做一些预处理,比如:来源合法性检测,权限校验,反爬虫之类.
1867 0
|
2月前
|
安全 5G 网络性能优化