Gateway基础知识

文章目录

  • Spring Cloud GateWay 用法
    • 核心概念
    • 请求流程
    • 两种配置方式
    • 设置日志(建议设置)
    • 路由的各种断言
    • 断言
      • The After Route Predicate Factory
      • The Before Route Predicate Factory
      • The Between Route Predicate Factory
      • The Cookie Route Predicate Factory
    • img
      • The Method Route Predicate Factory
      • (客户端访问地址)The Path Route Predicate Factory
      • The Query Route Predicate Factory
      • The RemoteAddr Route Predicate Factory
      • 发布控制 The Weight Route Predicate Factory
      • The XForwarded Remote Addr Route Predicate Factory
      • The Header Route Predicate Factory
      • The Host Route Predicate Factory
    • 过滤器
      • The AddRequestHeader GatewayFilter Factory
    • 小demo
      • 1.引入依赖
      • 2.写配置文件
      • 运行访问

Spring Cloud GateWay 用法

网关,类似于所有接口前面的一堵墙,统一来处理用户发起的请求,比如火车站售票前台。

关键是统一,起到路由,安全性等等。

官网:https://spring.io/projects/spring-cloud-gateway

官方文档:https://docs.spring.io/spring-cloud-gateway/docs/current/reference//html/

实例代码:https://spring.io/projects/spring-cloud-gateway#samples

核心概念

img

  1. 路由 (根据条件,进行url转发)
  2. 断言(一组规则,条件,用来确定如何转发路由)
  3. 过滤器:对请求进行一系列的处理,比如添加请求头,添加请求参数

请求流程

client:客户端发起请求

handler Mapping :根据断言,将请求转发到对应的路由

web handler:处理请求,一层层的经过过滤器:例如可以用于鉴权,限流等等

最后调用实际的服务

img

两种配置方式

  1. 配置式(推荐,方便,规范)
  • 简化版

img

  • 全称

img

  1. 编程式(灵活、自由)

设置日志(建议设置)

设置了日志就可以知道请求什么开始断言转发到哪里了。

logging:level:org:springframework:cloud:gateway: trace

路由的各种断言

断言

  1. After在x时间之后
  2. Before在x时间之前
  3. Between在x时间之间
  4. 请求类别
  5. 请求头(包含Cookie)
  6. 查询参数
  7. 客户端地址
  8. 权重(用于实现发布控制)

The After Route Predicate Factory

img

The Before Route Predicate Factory

当前时间在这个时间之前,就会访问当前这个路由

img

The Between Route Predicate Factory

当前时间在这个时间之间,就会访问当前这个路由

img

The Cookie Route Predicate Factory

img

The Method Route Predicate Factory

如果你的请求类别是这个post,get,就会访问当前这个路由

img

(客户端访问地址)The Path Route Predicate Factory

如果你的访问的地址是以这些/red/{segment},/blue/{segment}路径作为前缀,就会访问当前这个路由

spring:cloud:gateway:routes:- id: path_routeuri: https://example.orgpredicates:- Path=/red/{segment},/blue/{segment}

The Query Route Predicate Factory

根据查询条件,比如?green,就会访问当前这个路由

img

The RemoteAddr Route Predicate Factory

根据远程地址,比如你的用户的ip地址是192.168.1.1/24,就会访问当前这个路由

img

发布控制 The Weight Route Predicate Factory

根据你设置的权重,给你把同一个访问的地址,重定到不同的服务,轻松实现发布控制

img

The XForwarded Remote Addr Route Predicate Factory

从请求头中如果拿到XForwarded这个请求头的地址192.168.1.1/24,,就会访问当前这个路由 请求染色

img

The Header Route Predicate Factory

如果你的请求头包含X-Request-Id这样一个请求头,并且,它的值符合正则表达式的规则,就会访问当前这个路由

img

The Host Route Predicate Factory

如果你的访问的是这个.somehost.org,.anotherhost.org,域名,就会访问当前这个路由

过滤器

基本功能:对请求头、请求参数、响应头的增删改查

1.添加清求头

2.添加请求参数

3.添加响应头

4.降级

5.限流

6.重试

降级:https://docs.spring.io/spring-cloud-gateway/docs/current/reference/html/#spring-cloud-circuitbreaker-filter-factory

The AddRequestHeader GatewayFilter Factory

增加请求头

img

小demo

创建SpringBoot项目

1.引入依赖

gateway

lombok

2.写配置文件

server:port: 8090spring:cloud:gateway:routes:- id: path_routeuri: https://www.codefather.cn/predicates:- Path=/**logging:level:org:springframework:cloud:gateway: trace

运行访问

地址访问 localhost:8090,就会跳转到 codefather.cn

我是小辉,24 届应届毕业生。当下是找工作ing,持续分享,包括不限于技术文章。全网同名…

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/3351.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【第21章】spring-aot

文章目录 前言一、GraalVM1. 介绍2. 特点3. 安装4. 环境变量5. 验证6. native-image 二、安装C编译环境(VS)1.安装 三、编译及构建1. 测试类2. 编译3. 构建4. 执行 总结 前言 spring-aot(Ahead-Of-Time)是Spring框架中提供的一个新特性,用于…

【QEMU系统分析之启动篇(十五)】

系列文章目录 第十五章 QEMU系统仿真的导出虚拟机分析 文章目录 系列文章目录第十五章 QEMU系统仿真的导出虚拟机分析 前言一、QEMU是什么?二、QEMU系统仿真的启动分析1.系统仿真的初始化代码2.主循环数据初始化3. module_load_qom_all()module_check_arch()module…

十进制正负整数的二进制有几个1

这个问题的答案和这个十进制数的类型有关(int、long、byte…)。还有要清楚负数的二进制是补码。 我第一个想到的就是树状数组的lowbit int lowbit(int x) { return x & -x; }// lowbit(4)4 lowbit(6)2 int main() {int n;cin >> n;int res…

描述Java中的备忘录模式。

备忘录模式(Memento Pattern)是软件工程中的一种设计模式,属于行为型模式。它主要用于在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便之后可以将对象恢复到原先保存的状态…

面试二十二、跳表SkipLists

跳表全称为跳跃列表,它允许快速查询,插入和删除一个有序连续元素的数据链表。跳跃列表的平均查找和插入时间复杂度都是O(logn)。快速查询是通过维护一个多层次的链表,且每一层链表中的元素是前一层链表元素的子集(见右边的示意图&…

南都电源:以技术创新引领储能行业新发展

随着全球能源结构的深刻变革,储能行业正迎来前所未有的发展机遇。在这个充满挑战与机遇的时代,南都电源以其深厚的技术底蕴和前瞻的战略视野,成为储能行业的佼佼者。近日发布的2023年度业绩报告,更是彰显了其在行业内的领先地位和…

嵌入式UBoot如何跳转Kernel—uboot与linux交界分析

不知道你是否有这种感觉,就是学习了Uboot,学习了kernel,学习了安卓。但是有时候总感觉是各自孤立的,将三者连续不起来? • 不知道你是否在做启动方案的时候,在宏观上知道了整个启动链路流程,但是却在汪洋的代码中迷了路? 那么这篇文章必定对你有点用处。 如果没有,那请…

技术速递|MSTest SDK 简介 – 改进的配置和灵活性

作者:Marco Rossignoli & Amaury Lev 排版:Alan Wang 我们很高兴地宣布,基于 MSBuild Project SDK 系统构建的全新 MSTest SDK已推出。它旨在通过合理的默认值和灵活的选项使项目配置更加容易,从而为您提供更好的 MSTest 测试…

javabean技术四种方法

1.form表单 index页面 <% page language"java" contentType"text/html; charsetUTF-8"pageEncoding"UTF-8"%><!-- jsp页面输入三角形三条边&#xff0c;输出周长和面积 --><!-- 实例化对象bean的名字可以随便取名&#xff0…

人工智能与汽车行业的定量分析研究

人工智能与汽车行业的定量分析研究 摘要&#xff1a;[论文摘要] 关键词&#xff1a;[论文关键词] 一、引言 随着科技的飞速发展&#xff0c;人工智能&#xff08;AI&#xff09;技术已经深入到各个行业领域&#xff0c;汽车行业亦不例外。AI与汽车行业的结合&#xff0c;不…

Nginx基本使用 反向代理与负载均衡

什么是Nginx Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器。 其特点是占有内存少&#xff0c;并发能力强&#xff0c;nginx的并发能力在同类型的网页服务器中表现较好&#xff0c;而且几乎可以做到7*24不间断运行&#xff0c;即使运行数个月也不需要重新启动。 …

MP2110A Anritsu 安立 采样示波器 眼图设备 简述

MP2110A是一款集成了误码率测试仪&#xff08;BERT&#xff09;和采样示波器的一体化测量仪器&#xff0c;主要用于光学模块的误码率&#xff08;BER&#xff09;测量、眼图分析等评估操作。它支持从10G到800G的光学模块制造过程中的检测分91522。MP2110A内置4通道采样示波器&a…

MySQL从安装、配置到日常操作和管理的关键步骤

MySQL是一款广泛使用的开源关系型数据库管理系统&#xff0c;用于存储、管理、检索和处理数据。以下是一个详细的MySQL使用教程&#xff0c;包括安装、基本操作、数据管理、权限控制、备份与恢复等方面的内容&#xff1a; 一、MySQL安装 下载&#xff1a; 访问MySQL官方网站&a…

k8s部署jupyterlab,jupyterlab保存不了文件,如何解决?

&#x1f3c6;本文收录于「Bug调优」专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收藏&&…

磁盘分区以及MBR与GPT

磁盘分区以及MBR与GPT 磁盘分区的概念MBR&#xff08;Master Boot Record&#xff09;与GPT&#xff08;GUID Partition Table&#xff09;分区命令LinuxWindows 磁盘分区的概念 磁盘分区是将一个物理硬盘驱动器划分为多个逻辑部分的过程。每个分区可以看作是一个独立的硬盘&a…

ElasticSearch:查询操作合集

先看下我的数据&#xff1a; 1、查询所有文档&#xff1a; GET /cartest/_search或者 GET /cartest/_search {"query": {"match_all": {}} }2、匹配查询&#xff1a; match匹配类型查询&#xff0c;会把查询条件进行分词&#xff0c;然后进行查询&…

【树莓派】如何用电脑连接树莓派的远程桌面,灰屏解决

要使用VNC桌面连接到树莓派&#xff0c;你需要确保已经安装并启动了VNC服务器。以下是连接到树莓派的步骤&#xff1a; 在树莓派上启动VNC服务器&#xff1a; 打开终端或SSH连接到你的树莓派。输入以下命令以安装RealVNC的VNC服务器&#xff1a;sudo apt update sudo apt insta…

PLSQL数据库

目录 什么是PLSQL数据库 PL数据库的实现方法 PL数据库的基本语法 1.作用 2.语法 3.赋值输出 4.引用 5.异常处理 6.if 判断 7.loop循环 8.while循环 9.for循环 10.游标 11.参数游标 12.索引 13.分区表 什么是PLSQL数据库 PL/SQL&#xff08;Procedure Language/…

微前端通信机制及其实现

微前端通信机制是指在微前端架构中&#xff0c;不同的微应用之间进行通信的方式和机制。微前端通信机制的实现可以通过以下几种方式&#xff1a; 事件总线&#xff08;Event Bus&#xff09;&#xff1a;微前端架构中的主应用可以创建一个事件总线&#xff0c;用于发布和订阅事…

【C++航海王:追寻罗杰的编程之路】C++11(二)

目录 C11(上) 1 -> STL中的一些变化 2 -> 右值引用和移动语义 2.1 -> 左值引用和右值引用 2.2 -> 左值引用与右值引用比较 2.3 -> 右值引用使用场景与意义 2.4 -> 右值引用引用左值及其更深入的使用场景分析 2.5 -> 完美转发 C11(上) 1 -> STL…