Spring Cloud Gateway介绍及入门配置

Spring Cloud Gateway介绍及入门配置

概述:

Gateway是在Spring生态系统之上构建的API网关服务,基于Spring6,Spring Boot 3和Project Reactor等技术。它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式,并为它们提供跨领域的关注点,例如:安全性、监控/度量和恢复能力。

Spring Cloud Gateway组件的核心是一系列的过滤器,通过这些过滤器可以将客户端发送的请求转发(路由)到对应的微服务。 Spring Cloud Gateway是加在整个微服务最前沿的防火墙和代理器,隐藏微服务结点IP端口信息,从而加强安全保护。Spring Cloud Gateway本身也是一个微服务,需要注册进服务注册中心。

作用:

  • 反向代理
  • 鉴权
  • 流量控制
  • 熔断
  • 日志监控

三大核心:

  • 路由(router):路由是构建网关的基本模块,它由ID,目标URI,一系列的断言和过滤器组成,如果断言为true则匹配该路由
  • 断言(predicate):开发人员可以匹配HTTP请求中的所有内容(例如请求头或请求参数),
  • 过滤器(filter):指的是Spring框架中GatewayFilter的实例,使用过滤器,可以在请求被路由前或者之后对请求进行修改。

web前端请求,通过一些匹配条件,定位到真正的服务节点。并在这个转发过程的前后,进行一些精细化控制。

predicate就是我们的匹配条件;

filter,就可以理解为一个无所不能的拦截器。有了这两个元素,再加上目标uri,就可以实现一个具体的路由了

核心逻辑是:路由转发+断言判断+执行过滤器链

入门配置

由于gateway 也是一个微服务也需要注册到服务注册中心, 所以需要新创建一个moudle,并在启动类开启服务注册与发现

maven依赖

<properties><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><!--gateway--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId></dependency><!--服务注册发现consul discovery,网关也要注册进服务注册中心统一管控--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-consul-discovery</artifactId></dependency><!-- 指标监控健康检查的actuator,网关是响应式编程删除掉spring-boot-starter-web dependency--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
</project>

application.yaml

server:port: 9527spring:application:name: cloud-gateway #以微服务注册进consul或nacos服务列表内cloud:consul: #配置consul地址host: localhostport: 8500discovery:prefer-ip-address: trueservice-name: ${spring.application.name}gateway:routes:- id: pay_routh1 #pay_routh1                #路由的ID(类似mysql主键ID),没有固定规则但要求唯一,建议配合服务名#格式:lb://服务名   代表启用负载均衡得微服务 可以动态映射uriuri: lb://cloud-payment-service              #动态匹配后提供服务的路由地址predicates:- Path=/pay/gateway/get/**              # 断言,路径相匹配的进行路由- id: pay_routh2 #pay_routh2                #路由的ID(类似mysql主键ID),没有固定规则但要求唯一,建议配合服务名uri: lb://cloud-payment-service                #匹配后提供服务的路由地址predicates:- Path=/pay/gateway/info/**              # 断言,路径相匹配的进行路由

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

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

相关文章

第十五课 PCB保姆级规则设置(四)

1.常用的规则设置 2.设置完规则后&#xff0c;重新设置规则检查 将不设置的规则&#xff0c;不勾选 3.布线规则 &#xff08;1&#xff09;先走短线&#xff08;模块之内的线&#xff09; 模块之内的线需要连接&#xff0c;长线的话提前打孔&#xff08;占位置&#xff09;…

盘点热门的5个AI视频工具(上):附保姆级教程,居然还有免费的?(建议收藏)

一条完全使用 AI 做出的短视频&#xff0c;点赞上万&#xff0c;转发上万&#xff01; 你敢信&#xff0c;这是我在前几天刷视频的时候&#xff0c;看到的一个 AI 视频案例。 这种 AI 视频为什么会火&#xff1f; AI 虽然不是什么新的领域&#xff0c;但 2023 年&#xff0c…

如何批量更改图片的创建时间和修改时间 ? 图片属性更改

在数字时代&#xff0c;图像已经成为我们日常生活中不可或缺的一部分。无论是在社交媒体上分享生活点滴&#xff0c;还是在工作报告中展示数据成果&#xff0c;图像都扮演着至关重要的角色。然而&#xff0c;有时我们可能需要对图像进行一些调整&#xff0c;以更好地满足我们的…

【MyBatis面试题】

目录 前言 1.MyBatis执行流程。 2.Mybatis是否支持延迟加载&#xff1f; 3.延迟加载的底层原理知道吗&#xff1f; 4.Mybatis的一级、二级缓存用过吗&#xff1f; 5.Mybatis的二级缓存什么时候会清理缓存中的数据&#xff1f; 总结 前言 本文主要介绍了MyBatis面试题相…

机器学习的魔法(一)从零开始理解吴恩达的精炼笔记

一、机器学习是什么&#xff1f; 1、机器学习的概念 机器学习是一种人工智能领域的技术和方法&#xff0c;旨在使计算机系统能够从经验数据中自动学习和改进&#xff0c;而无需显式地进行编程。它涉及开发算法和模型&#xff0c;使计算机能够自动分析和理解数据&#xff0c;并…

基于DoDAF的航空装备智能保障系统体系结构建模

源自&#xff1a;系统工程与电子技术 作者&#xff1a;苗学问, 董骁雄, 钱征文, 胡杨, 李牧东 “人工智能技术与咨询” 发布 摘 要 保障系统结构建模是发展和构建新一代航空装备智能保障系统的重要基础。航空装备保障系统涉及保障要素多、交联关系复杂, 需从系统工程的角度…

详细介绍什么是美国FDA认证介绍

美国FDA认证是指由美国食品药品监督管理局&#xff08;Food and Drug Administration&#xff0c;简称FDA&#xff09;颁发的一种认证&#xff0c;它主要用于确保在美国市场上销售的食品、药品、医疗器械、生物制品、化妆品等产品的安全性和有效性。FDA认证是美国政府为了保护公…

centos7.9离线升级openssl和openssh9.2

1、查看本机ssh版本 ssh -VOpenSSH_6.6.1p1, OpenSSL 1.0.1e-fips 11 Feb 2013 可以看到openssh的版本是6.6.1&#xff0c;openssl版本是1.0.1 2、准备工作 gcc&#xff1a;https://pan.baidu.com/s/1RcnWouHwDaq-rkto6SYaBA 提取码&#xff1a;dwvf zlib-1.2.13&#xf…

单链表的实现(数据结构)

本篇博客主要是单链表&#xff08;无头单项不循环&#xff09;的实现的代码分享 说明&#xff1a;因为此单链表无头&#xff08;哨兵位&#xff09;&#xff0c;可以说成没有初始化也可以说初始化时没有一个有效地址作为单链表的起始地址 例如下面代码中的plist NULL。 所以在…

ldm 的pip错误安装问题

基于diffsion的很多工作需要使用ldm库&#xff0c;但是部分仓库的教程没有写明是哪个ldm。 这导致了如下问题&#xff1a; 错误安装了pypi的ldm 当运行代码&#xff1a; pip install ldm时&#xff0c;安装的时这个库&#xff1a; https://pypi.org/project/ldm/ 中的ldm&a…

倒计时!数境·第七届工业互联网数据创新应用大赛即将截止报名

共赴数据之旅&#xff0c;赋能工业未来&#xff01; 由深圳市宝安区人民政府和 中国信息通信研究院共同主办的 数境第七届工业互联网数据创新应用大赛 以“数实融合&#xff0c;助推新型工业化”为主题 聚焦先进制造、新能源和电子信息领域 设置算法赛和方案赛共三大赛道…

#QT(串口助手-界面)

1.IDE&#xff1a;QTCreator 2.实验&#xff1a;编写串口助手 3.记录 接收框:Plain Text Edit 属性选择&#xff1a;Combo Box 发送框:Line Edit 广告&#xff1a;Group Box &#xff08;1&#xff09;仿照现有串口助手设计UI界面 &#xff08;2&#xff09;此时串口助手大…

爬虫入门到精通_框架篇15(Scrapy框架安装)

1 Scrapy安装 Scrapy的安装有多种方式&#xff0c;它支持Python2.7版本及以上或Python3.3版本及以上。下面说明Python3环境下的安装。 Scrapy依赖的库比较多&#xff0c;至少需要依赖库有Twisted14.0,lxml 3.4,pyOpenSSL 0.14。而在不同平台环境又各不相同&#xff0c;所以在安…

3/7—21. 合并两个有序链表

代码实现&#xff1a; 方法1&#xff1a;递归 ---->难点 /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/ struct ListNode* mergeTwoLists(struct ListNode *list1, struct ListNode *list2) {/*1.如果l1为…

2024最新图标设计趋势!附超好用的图标工具清单

图标&#xff0c;在界面设计中的作用不容小觑。正所谓浓缩的就是精华&#xff0c;一个小小的图标&#xff0c;却有着高效传递信息、美化界面排版、提升用户体验的巨大能力。 既然图标如此重要&#xff0c;了解图标设计趋势对设计师来说几乎是必须要做的事&#xff0c;它可以让…

python3安装chrome,chromedriver亲测有效

客户用python写了个脚本&#xff0c;需要用到chrome和chromedriver扩展&#xff0c;结果说安装不了&#xff0c;各种报错&#xff0c;好吧我来研究一下。众所周知linux自带python2.7&#xff0c;根据报错查了一下资料发现是版本冲突导致的&#xff0c;系统自带2.7&#xff0c;代…

Python语言基础与应用-北京大学-陈斌-P32-31-计算和控制流-上机练习:创建并调用函数-字符集合的并集-上机代码

Python语言基础与应用-北京大学-陈斌-P32-31-计算和控制流-上机练习&#xff1a;创建并调用函数-字符集合的并集-上机代码 本文环境&#xff1a; win10 Thonny4.1.4 # 函数训练字符集合的并集 def my_union(str1,str2):list1 []list2 []i 0 while i < len(str1):lis…

springboot使用异步多线程

shigen坚持更新文章的博客写手&#xff0c;擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长&#xff0c;分享认知&#xff0c;留住感动。 个人IP&#xff1a;shigen 在shigen之前的很多文章中&#xff0c;提到了线程池&#xff1a; 高性能API设计…

利用IP地址信息提升网络安全

在计算机网络中&#xff0c;IP地址是用于唯一标识网络设备的重要标识符。然而&#xff0c;由于网络中存在大量设备&#xff0c;有时会出现IP地址冲突的情况&#xff0c;即两个或多个设备在同一网络中使用了相同的IP地址&#xff0c;这可能导致网络连接故障和通信中断。本文将介…

蚂蚁SEO什么是蜘蛛池2024最新强势蜘蛛池

蜘蛛池是一种搜索引擎优化&#xff08;SEO&#xff09;策略&#xff0c;通过在互联网上建立大量的网站和链接&#xff0c;吸引搜索引擎的爬虫&#xff08;也称为“蜘蛛”&#xff09;访问&#xff0c;以提高网站的搜索排名和曝光率。以下是关于蜘蛛池的详细解释&#xff1a; 获…