栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringCloud—Gateway: 网关

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringCloud—Gateway: 网关

官网: Spring Cloud Gateway

微服务中网关的作用
  • 统一入口:为全部微服务提供一个唯一的入口,网关起到外部和内部隔离的作用,保障了后台服务的安全性
  • 鉴权校验:识别每个请求的权限,拒绝不符合要求的请求
  • 动态路由:动态的将请求路由到不同的后端集群中
  • 减少客户端与服务端的耦合:服务可以独立发展,通过网关层来做映射

Spring Cloud 系列之 Gateway 服务网关(一) - 知乎

gateway 与 zuul
  • gateway 是 springcloud 微服务平台的一个子项目,属于 spring 开源社区,依赖名叫:spring-cloud-starter-gateway。官网:Spring Cloud Gateway
  • zuul 是 netflix 公司的开源项目,springcloud 在 netflix 项目中也已经集成了 zuul,依赖名叫:spring-cloud-starter-netflix-zuul。官网:https://github.com/Netflix/zuul
  • springcloud gateway 基于 spring 5、projec treactor、springboot 2,使用非阻塞式的 API,内置限流过滤器,支持长连接(比如 websockets),在高并发和后端服务响应慢的场景下比 zuul 1 的表现要好
  • zuul 基于 servlet2.x 构建,使用阻塞的 API,没有内置限流过滤器,不支持长连接
springcloud gateway 简介
  • springcloud gateway 是 springcloud 的一个全新项目,该项目是基于 spring 5.0,springboot 2.0 和 Project Reactor 等技术开发的网关,它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式
  • springcloud gateway 作为 springcloud 生态系统中的网关,目标是替代 netflix zuul,其不仅提供统一的路由方式,并且基于 Filter 链的方式提供了网关基本的功能,例如:安全,监控/指标,和限流
相关概念
  • Route(路由):这是网关的基本构建块。它由一个 ID,一个目标 URI,一组断言和一组过滤器定义。如果断言为真,则路由匹配
  • Predicate(断言):这是一个 Java 8 的 Predicate。输入类型是一个 ServerWebExchange。我们可以使用它来匹配来自 Http 请求的任何内容,例如 headers 或参数
  • Filter(过滤器):这是 org.springframework.cloud.gateway.filter.GatewayFilter 的实例,我们可以使用它修改请求和响应
工作流程

客户端向 SpringCloud Gateway 发出请求。如果 Gateway Handler Mapping 中找到与请求相匹配的路由,将其发送到 Gateway Web Handler。Handler 再通过指定的过滤器链来将请求发送到我们实际的服务执行业务逻辑,然后返回。 过滤器之间用虚线分开是因为过滤器可能会在发送代理请求之前(pre)或之后(post)执行业务逻辑
 

Gateway网关特性
  • 基于 Spring 5,Project Reactor 和 SpringBoot 2.0
  • 动态路由
  • 集成 Hystrix
  • 集成 SpringCloud 注册中心
  • 统一入口
    • 所有请求通过网关路由到内部其他服务。
  • 断言(Predicates)和过滤器(filters)特定路由。
    • 断言是根据具体的请求的规则由route去处理;
    • 过滤器用来对请求做各种判断和修改。
  • Hystrix 熔断机制。
    • Hystrix是 spring cloud gateway中是以filter的形式使用的。
  • 请求限流
    • 防止大规模请求对业务数据造成破坏。
  • 路径重写
    • 自定义路由转发规则。

一般为了不暴露自己的端口信息等,会选择架构一个网关在前面进行阻挡,起到保护的作用。附上一张工作示列图。

 

Gateway案例

引入依赖



    org.springframework.cloud
    spring-cloud-starter-gateway
    3.1.3

参考文章:SpringCloud Gateway网关基础知识 - 雨林园

springcloud之gateway服务网关_桐花思雨的博客-CSDN博客_springcloud网关

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1009282.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号