SpringCloud 之初识 GateWay

springboot gateway 记录请求和响应日志 微服务下的日志记录 阅读详情

前言

什么是 GateWay 网关,在微服务中为了方便统一管理且对外暴露服务端地址,起到了内部和外部的隔离保证了后台服务的安全性。可以根据不同的规则讲不通的请求进行路由到指定的服务器。作用很强大,且统一。 例如:网关鉴权丶跨域处理丶流量现流丶流量统计等等

今天我们的主角是 GateWay

Spring Cloud GateWay是Spring Cloud的⼀个全新项⽬,⽬标是取代Netflix Zuul,基于Spring5.0+SpringBoot2.0+WebFlux(基于⾼性能的Reactor模式响应式通信框架Netty,异步⾮阻塞模型)等技术开发,性能⾼于Zuul,官⽅测试,GateWay是Zuul的1.6倍。

那么我们可以GateWay 做什么呢

  1. 路由转发 Route
  2. 处理前后端跨域问题
  3. 防止sql注入
  4. 防止web共计(xxl)
  5. 统一日志记录
  6. 网关鉴权(没用到,我的项目中鉴权抽离了一个单独的公共模块)
  7. 流量现流

GateWay是工作原理

客户端向 Spring Cloud Gateway 发出请求。 如果网关处理程序映射确定请求与路由匹配,则将其发送到网关 Web 处理程序。 此处理程序通过特定于请求的过滤器链运行请求。 过滤器用虚线划分的原因是过滤器可以在发送代理请求之前和之后运行逻辑。 执行所有“预”过滤器逻辑。 然后发出代理请求。

使用 GateWay

当然 网关最主要的功能还是路由的转发(今天我们就先看看路由是如何进行转发的)
这是我自己的微服务项目 一共是4个服务

首先引入依赖(这里就不引入其他的依赖了nacos的依赖等)

         <dependency>

            <groupId>org.springframework.cloud</groupId>

            <artifactId>spring-cloud-starter-gateway</artifactId>
            <!-- 这里的版本跟着微服务的自己的版本来就可以了 -->
        </dependency>

这个网关暂时很简单就是路由的转发和配置了一下跨域

跨域:

/**

 * @author Mr_xk

 * @version 1.0

 * @date 2021/6/20 15:01

 */

@Configuration
public class BugvipConfig {
    @Bean
    public CorsWebFilter corsWebFilter(){

        UrlBasedCorsConfigurationSource sourse = new UrlBasedCorsConfigurationSource();

        CorsConfiguration corsConfiguration = new CorsConfiguration();

        //设置跨域请求头

        corsConfiguration.addAllowedHeader("*");

        //设置方法

        corsConfiguration.addAllowedMethod("*");

        //那个来源

        corsConfiguration.addAllowedOrigin("*");

        //是否允许cookie

        corsConfiguration.setAllowCredentials(true);

        sourse.registerCorsConfiguration("/**",corsConfiguration);

        return  new CorsWebFilter(sourse);

    }

}
复制代码

下面我们看看路由的转发规则

spring:

  application:

    name: bugvip-gatway

  cloud:

    nacos:

      discovery:

        server-addr: 192.168.1.12:8848

    gateway:

      discovery:

        locator:

          enabled: true   #设置为true 请求路径前可以添加微服务名称

          lower-case-service-id: true # 允许为小写

      routes:

        - id: bugvip-boss

          uri: lb://bugvip-boss

          predicates: 
          - Path=/api/boss/**  ## 断言规则

          filters: - RewritePath=/api/(?<segment>.*),/${segment} ## 将api过滤掉

        - id: bugvip-admin

          uri: lb://bugvip-admin

          predicates: 
          - Path=/api/admin/**

          filters: - RewritePath=/api/(?<segment>.*),/${segment}

        - id: bugvip-oss-image

          uri: lb://bugvip-oss-image

          predicates: 
          - Path=/api/third/**


其实我这路由断言很简单 api/后面紧跟的就是区分服务的,再到filter将api过滤掉。也就是 Path 路由断言 Factory

route

路由(Route)是GateWay中最基本的组件之一,表示一个具体的路由信息载体,主要由下面几个部分组成:

  1. id:路由唯一标识,区别于其他的route
  2. url: 路由指向的目的地URL,客户端请求最终被转发到的微服务
  3. order: 用于多个Route之间的排序,数值越小越靠前,匹配优先级越高
  4. predicate:断言的作用是进行条件判断,只有断言为true,才执行路由
  5. filter: 过滤器用于修改请求和响应信息

并且官方文档中提供了很多断言规则的
例如:

After 路由断言

指定是时间之后的请求都会被断言到(当然 也有before 和 Between)

spring:
  cloud:
    gateway:
      routes:
      - id: after_route
        uri: https://example.org
        predicates:
        - After=2017-01-20T17:42:47.789-07:00[America/Denver]

Cookie 路由断言 Factory

Cookie 路由断言 Factory有两个参数,cookie名称和正则表达式。请求包含次cookie名称且正则表达式为真的将会被匹配。

spring:
  cloud:
    gateway:
      routes:
      - id: cookie_route
        uri: https://example.org
        predicates:
        - Cookie=chocolate, ch.p

Query 路由断言 Factory

参数 路由断言 Factory 有2个参数: 必选项 param(key) 和可选项 regexp(value).

spring:
  cloud:
    gateway:
      routes:
      - id: query_route
        uri: https://example.org
        predicates:
        - Query=green

这个断言为有参数green是进行路由

spring:
  cloud:
    gateway:
      routes:
      - id: query_route
        uri: https://example.org
        predicates:
        - Query=red, gree.

这个是参数有red 而且 gree.与他正则为true时就可以进行 路由
Ok 官方为我提供了不少的断言规则

大家感兴趣的 话可以去研究研究 官网地址:docs.spring.io/spring-clou…

SpringCloud Gateway使用和配置,SpringCloud Gateway predicates详细配置 SpringCloud Gateway使用和配置, SpringCloud Gateway routes详细配置,SpringCloud Gateway predicates详细配置SpringCloud Gateway 跨域配置,SpringCloud Gateway 超时配置 ================================ ©Copyright 蕃薯耀2021-03-18... 阅读详情

相关推荐

SpringCloud之Gateway服务网关

目录`gateway` 与 `zuul``springcloud gateway` 简介 gateway 与 zuul gateway 是 springcloud 微服务平台的一个子项目,属于 spring 开源社区,依赖名叫:spring-cloud-starter-gateway。官网:https://spring.io/projects/spring-cloud-gateway zuul 是 netflix 公司的开源项目,springcloud 在 netflix 项目中也已经集成了 zuul,依

桐花思雨 1万+

SpringCloud Gateway——服务化路由

SpringCloud Gateway结合注册中心框架是怎样实现服务化路由的呢?又是怎样实时监听服务实例的上下线?

看不懂的男孩的博客 881

统计网关接口请求次数以及qps

1 通过分析解析日志文件来统计下qps以及请求的次数,经过几次试验以后统计的数据不准确。2 通过获取点评的cat监听服务获取数据,发现这个方法不错。数据是实时的以及准确。项目统计下接口的请求次数以及qps来优化下项目用到的接口时间同时作为限流配置使用。

码农养家 938

spring cloud gateway获取请求的真实地址

在使用spring cloud gateway的时候,路由一般配置为服务名 例如 lb://BASE-API-WEB/xxx/bbb 路径,我们无从知道,他真正路由到什么地方去了。 经过查看源码我发现了, org.springframework.cloud.gateway.filter.LoadBalancerClientFilter 这个filter中 对lb请求进行了处理,转换成真正的...

一只猪啊啊的博客 3万+

DDR4/LPDDR4与DDR5/LPDDR5的差别

最新的 DDR5 可支持单一芯片容量 64Gbit,最高容量上限可增加到 128GB,较 DDR4 提高了四倍;价格:随着规格提升,DDR5 价格也较 DDR4 高出逾 50%,可能成为业者导入的阻碍。但如前所述,包括 5G、机器学习(ML)等各式进阶应用中,DDR5 的整体效能、规格的提升,对相关业者来说仍具一定优势与吸引力。电源管理 IC(PMIC IC):电源管理芯片内建至 DDR5 内存中,除可提高讯号完整性及噪声辨识能力,还能更具效率与扩展性;DDR5 规格与效能整理。(来源:JEDEC)

flomingo1的专栏 9034

RandLA-Net复现SemanticKITTI和S3DIS数据集

RandLA-Net复现KITTI和室内数据集

weixin_48845174的博客 4123

Spring Cloud Gateway初识及相关配置

Spring Cloud Gateway Spring Cloud Gateway是Spring官网基于Spring 5.0、 Spring Boot 2.0、Project Reactor等技术开发的网关服 务。 Spring Cloud Gateway基于Filter链提供网关基本功能:安全、监控/埋点、限流等。 Spring Cloud Gateway为微服务架构提供简单、有效且统一的API...

weixin_44297716的博客 746

统信UOS系统网络服务异常排查:WIFI图标消失与网络设置缺失的解决方案

本文详细解析了统信UOS系统WIFI图标消失与网络设置缺失的常见问题,提供了从基础修复到进阶排查的完整解决方案。重点分析了NetworkManager服务异常的根本原因,包括系统更新中断、权限配置错误等,并给出实用的命令行操作指南和预防措施,帮助用户快速恢复网络功能。

weixin_29234239的博客 622

SpringCloud Gateway Filter 初识记录

SpringCloud早期整合的Netfix的Zuul用作网关,是Zuul 1.0版本.但是Zuul2.0并为整合进来,Cloud开发了Gateway替代Zuul作为Cloud网关的组件. Gateway Filter 简单使用 引入Maven依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway&

weixin_44065695的博客 271

零零信安:暗网分析报告——Part 4 商业黑客组织,“流星街”的原住

暗网,作为互联网的一部分,充满了神秘而又复杂的活动。更重要的是,其背后的主要参与者——商业黑客和各种有组织的犯罪集团,揭示了这是一个怎样的世界。本报告将试图带您了解这些原住民的身份、行为方式、商业逻辑、受害者以及他们构建的独特生态。

miffy_00sec的博客 636

演化计算(蚁群算法、粒子群算法、遗传算法、演化规则......)

演化算法1.概念2.解决的问题 1.概念 传统算法(如梯度下降法、爬山法)根据导数的性质决定迭代的方向;而演化计算是一组解在一起协同作用产生一个最优解。 2.解决的问题 预测优化:演化计算(蚁群算法、粒子群算法、遗传算法等) 解的聚散、多样性:通过多次聚散,尽快得出最优解(某个解不合要求,要能够发散出去) ...

dear_jing的博客 4165

初识服务网关之Spring Cloud Gateway

可以实现接口或继承创建自定义过滤器。@ComponentConfig> {@Override// 检查请求头中是否存在 Authorizationif (!// 可以添加配置属性功能/特性ZuulNginxKongTraefik架构集成Spring Cloud 环境Spring Cloud 兼容独立架构独立架构独立架构AWS 云平台适用场景微服务、Spring Cloud 项目Netflix 微服务全局流量管理大型微服务系统云原生容器化环境。

完颜振江 1684

20、自定义用户窗体:从创建到使用

本文详细介绍了在Excel VBA中创建和使用自定义用户窗体的完整过程,涵盖从窗体设计、控件添加与属性设置,到事件处理程序编写及宏调用的各个环节。通过实际示例讲解了如何实现文本大小写转换和员工信息录入等功能,并深入解析了常用控件的属性与事件机制。同时提供了控件命名规范、快捷键使用、布局技巧等实用建议,帮助读者构建高效、交互性强的VBA用户界面。

h0i1j2k3l的博客 132

Spring Cloud Gateway 初识网关第1篇

本文是参考Spring Cloud Gateway3.1.4来写的,其提供在Spring WebFlux之上构建。Spring Cloud Gateway旨在提供一种,并向它们提供,例如:安全性、监视/度量和弹性。

qq_35090943的博客 1123

把 ABAP CDS View 玩透:从 CDS 实体与数据库视图的差异,到访问控制、客户端处理与缓冲的一体化实践

本文深入解析ABAP CDS View的核心概念与技术细节,面向中高阶开发者提供实用指南。重点对比了传统CDS视图与新一代CDS View Entity的差异,强调应始终使用CDS实体而非底层数据库视图以保留完整语义。文章详细阐述了语义键与技术键的区分、客户端处理机制、缓冲策略优化以及DCL访问控制等重要特性,并指出CDS视图不支持Pooled/Cluster表的限制。最后通过航空领域示例代码,展示了从数据建模到访问控制的完整实现方案,包含可运行的DDL、DCL和ABAP代码片段,帮助开发者在项目中做出合理

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 291

以太网MII、RMII、GMII、RGMII(三)

RMII接口收发的数据位宽为2bit,因此管脚数目大为减少,在高密端口PHY中应用较多,但是由于其是MAC和PHY共用一个参考时钟,接口之间的距离不能太远;一般的GMII接口都有两个发送参考时钟:TX_CLK和GTX_CLK,两者的方向是不一样的,前者有PHY提供(同MII),后者由MAC或外部参考时钟源提供,绝大多数GMII接口都是兼容MII接口的,在用作MII模式时,使用TX_CLK和8根数据线中的4根。MII接口中的接收时钟和发送时钟是分开的,而且都是由PHY芯片提供给MAC芯片的。

qq_42357877的博客 2334

springcloud gateway ribbon使用_初识springcloud(上)

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封...

weixin_39535349的博客 1527

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

第十五章 Spring Cloud GateWay 初识

Spring Cloud作为Spring Cloud官方推荐的第二代框架,取代Zuul网关。网关作为流量控制,在微服务架构当中有非常重要的作用。网关常用的功能有路由转发、权限校验和限流控制等。 本案例来源于官网,在官网的基础之上进行实现。 1、准备工作 本篇文章需要父项目(spring-cloud-brimen-gateway)和子工程(spring-cloud-gateway-first),关于...

brimen的博客 342

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

初识springcloud-gateway的技术架构和原理

关于网关 单体应用拆分成多个服务后,对外需要一个统一入口,解耦客户端与内部服务 Gateway 本身是一个 Spring Boot 应用,它处理请求是逻辑是根据配置的路由对请求进行预处理和转发。Gateway 有几个比较核心的概念: Route: 一个 Route 由路由 ID,转发 URI,多个 Predicates 以及多个 Filters 构成。Gateway 上可以配置多个 Routes。处理请求时会按优先级排序,找到第一个满足所有 Predicates 的 Route。 Predicate: 表

weixin_44957065的博客 962

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

gateway转发security登录接口失败_SpringCloud学习笔记——新服务网关Gateway初识

GateWay概述Spring Cloud Gateway是Spring官方基于Spring5.0、SpringBoot2.0和Project Reactor等技术开发的网关。Spring Cloud Gateway旨在为微服务架构提供简单、有效且统一的API路由管理方式。Zuul1.x基于Servlet实现,采用HttpClient进行请求转发,使用阻塞模式,不支持长连接。Spring...

weixin_35032861的博客 955

SpringCloud之服务网关Gateway

前言 SpringCloud 是微服务中的翘楚,最佳的落地方案。 Spring Cloud Gateway 是 Spring Cloud 新推出的网关框架,之前是Netflix Zuul。网关通常在项目中为了简化 前端的调用逻辑,同时也简化内部服务之间互相调用的复杂度;具体作用就是转发服务,接收并转发所有内外 部的客户端调用;其他常见的功能还有权限认证,限流控制等等。 ...

我的博客 30万+

SpringCloud gateway (史上最全)

前言 疯狂创客圈(笔者尼恩创建的高并发研习社群)Springcloud 高并发系列文章,将为大家介绍三个版本的 高并发秒杀: 一、版本1 :springcloud + zookeeper 秒杀 二、版本2 :springcloud + redis 分布式锁秒杀 三、版本3 :springcloud + Nginx + Lua 高性能版本秒杀 以及有关Springcloud 几篇核心、重要的文章: 一、Springcloud 配置, 史上最全 一文全懂 二、Springcloud 中 Sprin

骏马逸动,心随你动的博客 3万+

springCloud网关Zuul和GateWay区别

getway和zuul在zuul没有进行参数调优的时候,getway的性能会远高于zuul。 分析,在空负载的时候,SpringCloud Gateway比zuul 1 性能高50%左右,在模拟处理50ms业务后,,SpringCloud Gateway比zuul 1 性能高9倍左右。 但是考虑到zuul使用默认配置,结果可能不准,上网查找zuul生产优化配置调优后再次进行50ms业务处理压测。而SpringCloud Gateway查阅资料后暂无需优化。 zuul优化参数参考如下: 性能比较结论 在实

joy_tom的博客 2万+
上一篇: Java实现常用的三种加密算法详解
下一篇: 线上接口流量突增,扛不住了
Java技术那些事儿
博客等级 码龄5年 2306粉丝 2584原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值