当前位置: 首页 > news >正文

【Spring Cloud】Gateway的配置与使用

文章目录

  • 前言
  • 第一步,创建一个springboot工程
  • 第二步,添加依赖
  • 第三步,编写yml文件
  • 第四步,启动主启动类
  • 总结

前言

Gateway其实是springcloud 原生的东西,但是我还是想放在这里讲,因为我们使用nacos时,前端调用服务之后,一般会调用到我们的网关上面,然后网关选择我们的nacos服务,再调用后端的服务

在当今微服务架构中,网关起着至关重要的角色。它充当着应用程序和外部世界之间的门户,处理来自客户端的请求并将其转发到适当的微服务。而Spring Cloud Gateway作为Spring Cloud生态系统中的一员,为我们提供了一个强大而灵活的网关解决方案。

本文将深入探讨Spring Cloud Gateway的配置与使用,帮助读者更好地理解并应用这个优秀的网关工具。

第一步,创建一个springboot工程

在这里插入图片描述

第二步,添加依赖

  <properties><java.version>1.8</java.version><spring-cloud.version>Greenwich.SR6</spring-cloud.version><spring-cloud-alibaba.version>2.1.0.RELEASE</spring-cloud-alibaba.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>${spring-cloud-alibaba.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement>

第三步,编写yml文件

spring:cloud:nacos:discovery:server-addr: 192.168.0.93:8848gateway:routes:- id: service-provideruri: lb://service-providerpredicates:- Path=/provider/** #以provider开头的请求都负载到provider服务filters:- RewritePath=/provider/(?<segment>.*), /$\{segment} #过滤掉url里的provider,例如http://ip:port/provider/getCity -> http://ip:port/getCityapplication:name: gateway
server:port: 8999

解读配置文件:

  • RewritePath:过滤掉url里的provider,例如http://ip:port/provider/getCity -> http://ip:port/getCity
  • Path:以provider开头的请求都负载到provider服务
  • id:route的唯一id
  • uri:需要返回的nacos中间的服务

这是我们的nacos控制台,里面有一个service-provider服务,他负责提供api

在这里插入图片描述

所以yml里面的routes我们配置uri为lb://service-provider

假如前端要访问我们的服务,他只需要访问http://localhost:8999/provider就好,他是以provider开头,所以
Path这里我们配置为- Path=/provider/**

但是我们服务提供者提供的api为/echo/{string},所以我们需要去掉provider,因此RewritePath配置为/provider/(?<segment>.*), /$\{segment}

第四步,启动主启动类

在这里插入图片描述

之后网关服务就会被注册到nacos中

在这里插入图片描述

然后就可以通过我们的gateway服务访问我们nacos中的服务了
在这里插入图片描述

提供者提供的api如下

在这里插入图片描述

官网:

  • https://spring.io/projects/spring-cloud-gateway
    仓库地址:
  • https://gitee.com/WangFuGui-Ma/spring-cloud-alibaba/tree/master

总结

通过本文的介绍,我们了解了Spring Cloud Gateway的核心概念和基本配置。它的灵活性和可扩展性使得它成为构建可靠、高性能微服务架构的理想选择。

希望本文对于读者们在使用Spring Cloud Gateway时有所帮助,并能够加深对该组件的理解和运用。愿您在未来的项目中,能够借助Spring Cloud Gateway轻松实现安全、高效的网关服务。

http://www.lryc.cn/news/102880.html

相关文章:

  • 概念、框架简介--ruoyi学习(一)
  • IDEA的基础使用——【初识IDEA】
  • LeetCode刷题总结-动态规划篇
  • el-table使用xlsx实现导入文件编辑功能
  • Android9、11 有线网络开关设置
  • 【MySQL】mysql问题 | [ERROR] unknown variable ‘column-statistics=0‘
  • ElasticSearch 7.x
  • MVC乱码问题
  • 1004. 最大连续1的个数 III
  • 【机器学习】西瓜书学习心得及课后习题参考答案—第3章线性模型
  • 面试官问我:一个 TCP 连接可以发多少个 HTTP 请求?我竟然回答不上来...
  • 树莓派Pico|RP2040|官方文档|在MS Windows上构建“Hello World”及环境配置
  • 全球公链进展| 2023/7/31
  • Spring源码(三)Spring Bean生命周期
  • 【iOS】Cydia Impactor 错误:file http.hpp; line:37; what: _assert(code == 200)
  • 3ds MAX绘制茶壶
  • 【element-plus】 table表格每行圆角解决方案 element也通用
  • 【状态估计】基于UKF、AUKF的电力系统负荷存在突变时的三相状态估计研究(Matlab代码实现)
  • webstorm格式化代码后单引号转成了双引号
  • 在langchain中使用带简短知识内容的prompt template
  • java医院电子病历系统源码:云端SaaS服务 前后端分离模式开发和部署
  • 【Golang 接口自动化01】使用标准库net/http发送Get请求
  • Excel透视表与python实现
  • 二级制部署kubernetes(1.20)
  • 云曦暑期学习第二周——文件上传漏洞
  • 软件测试右移的意义与关键点
  • VLAN原理(Virtual LAN 虚拟局域网)
  • YOLOv8 如何进行目标追踪
  • 【暑期每日一练】 day10
  • antd中的Cascader级联选择框怎么清空重置React