我的编程空间,编程开发者的网络收藏夹
学习永远不晚

SpringCloud服务网关Gateway的使用教程详解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

SpringCloud服务网关Gateway的使用教程详解

Gateway

什么是Gateway

  由于Netflix的zuul发生问题,spring公司自己研发了一套网关框架Gateway用于取代zuul的使用。什么是gateway呢?spring cloud Gateway是使用Webflux中的reactor-netty响应式编程组件,底层使用的是netty通讯框架。

什么是api网关

  API gateway 处于客户端与各个微服务之间,它担任了反向代理的角色,将不同的请求路由到相对应的微服务中去。与此同时,它还有以下功能:安全,限流,缓存,日志,监控,重试,熔断等。网关就是所有项目的一个统一入口,也可以说是进入系统的唯一节点。

网关的三个核心概念

路由(Route)

  路由是构建网关的基本模块,它由ID、目标URI、一系列的断言和过滤器组成,如果断言为真则匹配该路由。就是根据断言和过滤器提供的某些规则,将请求发送到指定服务上

断言(Predicate)

  开发人员可以匹配HTTP请求中的所有内容(例如请求头或请求参数),如果请求与断言相匹配则进行路由,就是定义匹配规则,只有满足断言的请求才会继续进行路由

过滤(Filter)

  指的是Spring框架中GatewayFilter的实例,使用过滤器,可以在请求被路由前或者之后对请求进行修改。当请求进行断言之前,或者满足断言后会继续进行路由,但是由于过滤的存在请求会再次被过滤条件进行指定的修改操作

gateway的工作流程

  客户端向Spring Cloud Gateway发出请求。然后在Gateway Handler Mapping 中找到与请求相匹配的路由,将其发送到GatewayWeb Handler。Handler再通过指定的过滤器链来将请求发送到我们实际的服务执行业务逻辑,然后返回。

  过滤器之间用虚线分开是因为过滤器可能会在发送代理请求之前(“pre”)或之后(“post”)执行业务逻辑。Filter在“pre”类型的过滤器可以做参数校验、权限校验、流量监控、日志输出、协议转换等,在“post”类型的过滤器中可以做响应内容、响应头的修改,日志的输出,流量监控等有着非常重要的作用。

如何使用Gateway

gateway路由转发

使用配置文件

  第一步: 创建一个子模块用于配置gateway,导入相关依赖,其中最重要的就是gateway的启动器。一定不能引入web场景启动器依赖,否则gateway模块将无法启动

<!--gateway-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>

  第二步: 配置文件

server:
  port: 9527

spring:
  application:
    name: cloud-gateway

eureka:
  instance:
    hostname: cloud-gateway-service
  client: #服务提供者provider注册进eureka服务列表内
    service-url:
      register-with-eureka: true
      fetch-registry: true
      defaultZone: http://localhost:7001/eureka

  第三步: 现在我们想在支付微服务8001之前使用gateway网关,让请求在访问8001微服务之前先经过gateway网关。于是我们需要先配置配置文件

spring:
  cloud:
    gateway:
      routes:
        - id: payment_routh #payment_route    #路由的ID,没有固定规则但要求唯一,建议配合服务名
          #uri: http://localhost:8001          #匹配后提供服务的路由地址
          uri: lb://cloud-payment-service #匹配后提供服务的路由地址
          predicates:
            - Path=/payment/get String uname = exchange.getRequest().getQueryParams().getFirst("uname"); if (uname == null) { log.info("*******用户名为null,非法用户,o(╥﹏╥)o"); exchange.getResponse().setStatusCode(HttpStatus.NOT_ACCEPTABLE); return exchange.getResponse().setComplete(); } return chain.filter(exchange); } @Override public int getOrder() { return 0; } }

到此这篇关于SpringCloud服务网关Gateway的使用教程详解的文章就介绍到这了,更多相关SpringCloud Gateway内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

SpringCloud服务网关Gateway的使用教程详解

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

SpringCloud中Gateway的使用教程详解

SpringCloud Gateway是Spring体系内的一个全新项目,它旨在为微服务架构提供一种简单有效的统一的API路由管理方式。本文就来为大家详细讲讲Gateway的使用教程,需要的可以参考一下
2022-11-13

SpringCloud Gateway服务网关的部署与使用的方法是什么

这篇文章主要介绍“SpringCloud Gateway服务网关的部署与使用的方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SpringCloud Gateway服务网关的部署与使用的方法
2023-07-05

Spring Cloud Gateway 服务网关的部署与使用详细讲解

这篇文章主要介绍了Spring Cloud Gateway 服务网关的部署与使用详细介绍,本文给大家讲解的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
2023-05-14

SpringCloud实现服务调用feign与熔断hystrix和网关gateway详细分析

这篇文章主要介绍了SpringCloud实现服务调用feign与熔断hystrix和网关gateway,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
2023-05-14

SpringCloud怎么实现服务调用feign、熔断hystrix和网关gateway

本文小编为大家详细介绍“SpringCloud怎么实现服务调用feign、熔断hystrix和网关gateway”,内容详细,步骤清晰,细节处理妥当,希望这篇“SpringCloud怎么实现服务调用feign、熔断hystrix和网关gat
2023-07-05

微服务网关SIA-GateWay使用指南

一、DeskTopDeskTop展示当前注册的各个网关组,点击一个网关组将选中该网关组并跳转至首页。每个网关组包括如下四项:角色值:网关应用名前缀,用于区分网关组拥有实例:网关组实例个数网关状态:网关组当前状态网关描述:网关组描述信息,可修
2023-06-05

SpringCloud使用logback日志框架教程详解

Logback是一个功能强大的日志框架,它是一个基于slf4j的日志系统,提供了可靠的日志服务,比log4j更快,更灵活,更容易使用。本文将教会你快速让你的项目集成logback日志框架,需要的朋友可以参考下
2023-05-19

SpringCloud超详细讲解微服务网关Zuul基础

这篇文章主要介绍了SpringCloud Zuul微服务网关,负载均衡,熔断和限流,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
2022-11-13

关于SpringCloud的微服务以及组件详解

这篇文章主要介绍了关于SpringCloud的微服务以及组件详解,是一个更高层次的、架构视角的综合性大型项目,他的目标是构建一套标准化的微服务解决方案,需要的朋友可以参考下
2023-05-20

SpringCloud服务接口调用OpenFeign及使用详解

这篇文章主要介绍了SpringCloud服务接口调用——OpenFeign,在学习Ribbon时,服务间调用使用的是RestTemplate+Ribbon实现,而Feign在此基础上继续进行了封装,使服务间调用变得更加方便,需要的朋友可以参考下
2023-05-14

热门标签

编程热搜

编程资源站

目录