【17-微服务网关之Spring Cloud GatewaySpring Cloud Gateway网关服务搭建】

news2025/7/28 18:34:57

一.知识回顾

【0.三高商城系统的专题专栏都帮你整理好了,请点击这里!】
【1-系统架构演进过程】
【2-微服务系统架构需求】
【3-高性能、高并发、高可用的三高商城系统项目介绍】
【4-Linux云服务器上安装Docker】
【5-Docker安装部署MySQL和Redis服务】
【6-Git安装与配置过程、Gitee码云上创建项目、IDEA关联克隆的项目】
【7-创建商城系统的子模块并将修改后的信息使用Git提交到Gitee上】
【8-数据库表结构的创建&后台管理系统的搭建】
【9-前端项目的搭建部署、Node安装、VSCode安装】
【10-Node的安装以及全局环境变量的相关配置&解决启动报错的问题(1.Error: Cannot find module ‘fs/promises)(2.npm安装node-sass报错)】
【11-导入人人generator项目并自动生成相关的文件&商品子模块的调试&公共模块common子模块的抽离与实现&Lombok插件的安装】
【12-商品子模块整合MyBatisPlus技术&其它模块通过generator的自动生成与补充完善】
【13-项目中微服务组件的学习-SpringCloudAlibaba微服务生态体系的学习&SpringCloudAlibaba的依赖管理&项目中SpringBoot和SpringCloud版本的统一】
【14-微服务的注册中心与配置中心Nacos&Windows操作系统上安装Nacos和Linux操作系统上用Docker中安装Nacos&每个子项目模块使用Nacos进行服务注册与发现】
【15-项目中服务的远程调用之OpenFeign&订单模块与商品模块集成使用OpenFeign的案例】
【16-配置中心之Nacos的基本使用&Nacos服务之命令空间、Nacos服务之配置组、Nacos服务之配置拆分】

二.微服务网关Gateway

Spring Cloud GateWay官网手册地址

5.5.1 网关基本介绍

  在微服务架构里,服务的粒度被进一步细分,各个业务服务可以被独立的设计、开发、测试、部署和管理。这时,各个独立部署单元可以用不同的开发测试团队维护,可以使用不同的编程语言和技术平台进行设计,这就要求必须使用一种语言和平台无关的服务协议作为各个单元间的通讯方式。

在这里插入图片描述

  本系统中我们选择的是Gateway作为我们的网关组件,Spring Cloud Gateway是Spring官方基于Spring 5.0,Spring Boot 2.0和Project Reactor等技术开发的网关,Spring Cloud Gateway旨在为微服务架构提供一种简单而有效的统一的API路由管理方式。Spring Cloud Gateway作为Spring Cloud生态系中的网关,目标是替代ZUUL,其不仅提供统一的路由方式,并且基于Filter链的方式提供了网关基本的功能,例如:安全,监控/埋点,和限流等。

网关由三个部分组成:
在这里插入图片描述

  • Route(路由):这是网关的基本构建块,它由一个ID,一个目标URI,一组断言和一组过滤器定义,如果断言为真,则路由匹配
  • Predicate(断言):是Java8中提供的函数式接口,用来判断是否路由匹配的
  • Filter(过滤器):对断言匹配的请求和响应进行修改处理

路由断言工厂的分类:

全局过滤器分类:
在这里插入图片描述

三.Spring Cloud Gateway网关服务搭建

创建一个mall-gateway网关的模块
在这里插入图片描述

创建网关API服务,修改SpringBoot和SpringCloud相关版本和其他的微服务保持一致。然后添加对应的依赖

        <dependency>
            <groupId>com.ljw.mall</groupId>
            <artifactId>mall-commons</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-gateway</artifactId>
        </dependency>

因为网关服务路由的时候需要去注册中心中发现相关的服务所以需要完成Nacos注册中心的配置

# 注册中心的配置
spring.application.name=mall-gateway
spring.cloud.nacos.discovery.server-addr=ip地址:8848

# 指定注册中心的服务端口
server.port=8070

主启动类放开注册中心的发现注解
在这里插入图片描述

配置网关的服务注册中心

在这里插入图片描述

配置网关Nacos的配置中心

在这里插入图片描述

application.yml配置文件进行路由的配置

# 注册中心的配置
spring:
  application:
    name: mall-gateway
  cloud:
    nacos:
      discovery:
        server-addr: Nacos服务的IP地址:8848
    gateway:
      routes:
        - id: route1
          uri: http://www.baidu.com
          predicates:
            - Query=url,baidu
        - id: route2
          uri: http:www.jd.com
          predicates:
            - Query=url,jd
server:
  port: 8070

启动时候因为依赖的commons服务中有MyBatis的依赖,那么在网关API服务中也需要数据源的相关配置,那么没有就抛异常,对应如下的解决方案:

  1. gateway的pom文件中引入commons模块的相关依赖排除我们数据库的相关依赖;
  2. 这时我们可以在启动类的SpringBootApplication注解中排除DataSourceAutoConfiguration的自动注入。
/**
 * TODO:网关和我们的数据库没有关系,所以再启动的时候排除相关的依赖
 * @SpringBootApplication(exclude = DataSourceAutoConfiguration.class)  
 */
@EnableDiscoveryClient
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
public class MallGatewayApplication {

    public static void main(String[] args) {
        SpringApplication.run(MallGatewayApplication.class, args);
    }

}

在这里插入图片描述

然后根据对应的路由规则测试即可:

http://localhost:8070/?url=baidu
在这里插入图片描述

http://localhost:8070/?url=jd
在这里插入图片描述

好了,关于【17-微服务网关之Spring Cloud Gateway&Spring Cloud Gateway网关服务搭建】就先学习到这里,更多内容持续创作更新中,敬请期待。

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

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

相关文章

“知识图谱补全”术语:知识图谱补全、三元组分类、链接预测

基本简介&#xff1a; 知识图谱补全通常定义为“三元组分类”或“链接预测”任务。首先&#xff0c;一条知识在知识图谱中通常由三元组表示&#xff1a;“头实体&#xff0c;关系&#xff0c;尾实体”。三元组分类即对于给定的三元组&#xff0c;预测其正确的概率。而链接预测…

VM虚拟机卡顿、闪退一系列问题与卸载重装问题(详细版)

最新发现好多虚拟机有闪退现象&#xff0c;对此我给出一系列解决方案&#xff0c;仅供参考 一.软件问题 1.虚拟机闪退 首先&#xff0c;如果是VMware Workstation Pro也就是软件本身闪退问题&#xff0c;即还没有运行或打开系统时就已经闪退&#xff0c;说明软件有问题&…

Windows系统VirtualBox下载与安装

Windows系统VirtualBox下载与安装 一、下载&#xff1a;https://www.virtualbox.org/wiki/Downloads 1.安装包 2.扩展包&#xff08;对USB 2.0、USB 3.0、远程桌面协议 VRDP等实用功能的支持&#xff09; 二、安装 1.如果安装出现本机缺少必要包的情况&#xff0c;不要慌&am…

3.1版本【HarmonyOS 第一课】正式上线!参与学习赢官方好礼>>

【课程介绍】《HarmonyOS第一课》是跟随版本迭代不断推出的系列化课程&#xff0c;本期课程基于HarmonyOS 3.1版本的新技术和特性&#xff0c;每个课程单元里面都包含视频、Codelab、文章和习题&#xff0c;帮助您快速掌握HarmonyOS的应用开发&#xff0c;快速了解新的特性和技…

基于PHP+MySQL汽车展览会网站的设计与实现

随着我国经济的发展,汽车已经进入了家家户户,但是很多时候人们因为各种原因需要进行汽车出行,但是很多时候人们有不知道购买什么样的汽车更适合自己,如果挨个去汽车4S既浪费时间又不能够把各类汽车都看全,人们更希望通过发达的车展来查询自己所需的汽车信息,本系统也是出于这样…

分享几个常用的可以从外部攻击视角发现甲方公司安全问题的开源工具

资产管理平台-ARL https://github.com/TophantTechnology/ARL 作为甲方&#xff0c;一定要有自己的资产平台&#xff0c;主要目的就是基于外部攻击视角不断发现风险&#xff0c;当然放在内网也可以&#xff0c;测试了很多开源的工具&#xff0c;最终还是选择了ARL&#xff0c;…

【深入理解C++】左值引用、常引用、右值引用、std::move()函数

文章目录1.左值引用2.常引用2.1 const引用可以指向临时数据2.2 const引用可以指向不同类型的数据2.3 const引用作为函数参数3.右值引用4.std::move()函数1.左值引用 左值引用只能绑定到左值上&#xff0c;不能绑定到右值上。 左值引用不能绑定到临时变量上&#xff0c;因为临…

是德N5290A矢量网络分析仪技术参数及操作步骤

网络分析仪能对被测量器件(主要分为有源元件和无源元件)的线性和非线性特性(幅频特性&#xff0c;相频特性&#xff0c;时频特性&#xff0c;功率频率特性等)进行表征。 那么大家真的了解网络分析仪吗?下面西安安泰测试以是德科技(安捷伦)E50系列矢量网络分析仪为例介绍仪器基…

基于PHP+MySQL汽车租赁管理系统的设计与实现

虽然汽车已经进入了家家户户,但是很多时候人们因为各种原因需要进行汽车的租赁,可能是到达的城市比较远,也可能是经济实力不允许,或者是对车辆的要求不高,暂时没必要买车等,这些特殊的原因导致了汽车租赁行业的兴起。越来越多的用车用户希望通过租赁来直接获取使用的使用权,这样…

四、C++ 类的继承

文章目录一、引言1.1 类成员的三种类型1.2 访问控制和继承二、类的继承2.1 格式2.2 继承类型三、多继承一、引言 1.1 类成员的三种类型 我们知道&#xff0c;在类中一共有三种类型&#xff0c;分别为public&#xff0c;private和protected&#xff0c;默认为private&#xff…

redhat6.5安装nvidia驱动

iso&#xff1a;redhat6.5 1、下载安装NVIDIA显卡驱动 1.1 打开终端 1.2 输入下方代码进行查看自己的显卡型号 lspci |grep -i nvidia 2、在官网下载对应的驱动&#xff1a; 官方驱动 | NVIDIA 3、禁用nouveau驱动 3.1 禁用默认的nouveau&#xff0c;据说这是NVIDIA显卡…

yolox原理

目录 1 Decoupled Head 1.1 YOLOX的解耦头结构思考 2 Data Augmentation 别人讲的好的文章&#xff0c;yolox作者写的 以下正文部分内容&#xff0c;参考该链接 如何评价旷视开源的YOLOX&#xff0c;效果超过YOLOv5? - 知乎感谢大家对旷视开源的 YOLOX 关注&#xff0c;本…

数字化外协生产综合管理系统,实现信息自动同步,数据自动统计分析!

随着市场经济的不断发展&#xff0c;制造生产行业竞争不断加剧&#xff0c;精细化、无纸化办公已成为生产企业生存和发展的基本条件。要想将企业内部管理做的更精更细&#xff0c;就必须借助于现代先进的企业管理手段和工具&#xff0c;如企业资源计划系统、生产管理系统等。 …

Linux安装Apache(解压版)

安装依赖 yum -y install gcc perl wget make pcre-devel openssl-devel expat-devel 安装目录 mkdir /opt/apache && cd /opt/apache 安装包下载 wget https://dlcdn.apache.org/apr/apr-1.7.0.tar.gz --no-check-certificate wget https://dlcdn.apache.org/apr/apr-…

谈谈数据分析晓知识

随着数字化转型普遍开展,数据分析飞速发展。无论您的组织属于哪个行业,数据分析都可能在制定战略中发挥着关键作用。许多公司现在都有数据分析师,他们对原始数据采用数据挖掘技术,从这个过程中获得的许多可行的洞察和见解。 同时,数据分析软件市场迅速攀升。根据IDC的数据…

【iOS-UIImagePickerController访问相机和相册】

文章目录记录UIImagePickerControllerUIImagePickerController的sourceType主要代码点击imageView事件跳转到相机和相册![请添加图片描述](https://img-blog.csdnimg.cn/0a5a307de371421eba7e3472075dcaeb.png)总结记录 在写知乎日报的时候用到过imageVIew点击事件&#xff0c…

函数式编程

Lambda表达式介绍 Lambda简介 Lambda 表达式是 JDK8 的一个新特性&#xff0c;可以取代大部分的匿名内部类&#xff0c;写出更优雅的 Java 代码&#xff0c;尤其在集合的遍历和其他集合操作中&#xff0c;可以极大地优化代码结构。 在Java语言中&#xff0c;可以为变量赋予一…

连续六个季度实现盈利改善,达达集团内外双重确定性凸显

当消费迈向复苏时&#xff0c;今年的社会消费品零售也在总额恢复增长的情况下&#xff0c;迎来结构性变化。 其中&#xff0c;一股消费力量的加速增长成为了重点——即时零售。今年7月&#xff0c;商务部在官网发布的《2022年上半年中国网络零售市场发展报告》&#xff0c;首次…

VOACAP 软件的下载与安装

VOACAP 简介 VOACAP(Voice of America Coverage Analysis Program&#xff0c;美国之音覆盖分析程序)软件是NTIA/ITS开发的高频规划软件包 ITS HF Propagation 中的一个电路计算模块&#xff0c;它是对原 ITS IONCAP 模块(高频传输系统应用预测模块之一)的改进&#xff0c;并根…

LogTAD:无监督跨系统日志异常域检测

摘要 日志异常检测&#xff0c;其对开发稳定、可持续的系统具有重要意义。但当系统刚上线时&#xff0c;收集足够的数据训练一个无监督模型是不现实的。为此本文提出了一个可转移的日志异常检测(LogTAD)框架&#xff0c;该框架利用对抗域适应技术使来自不同系统的日志数据具有…