Spring Gateway学习

系列文章目录

JavaSE
基础知识、数据类型学习万年历项目代码逻辑训练习题
代码逻辑训练习题方法、数组学习图书管理系统项目
面向对象编程:封装、继承、多态学习封装继承多态习题常用类、包装类、异常处理机制学习
集合学习IO流、多线程学习仓库管理系统JavaSE项目
员工管理系统、多表查询、反射实现DBHelper学习DML、DDL、数据库对象学习
JavaWeb
网络编程、各种标签、CSS学习ECMAScript、BOM学习DOM、jQuery学习
Servlet、JSP、Cookie、Ajax学习融资管理系统JavaWeb项目
框架
MyBatis框架学习逆向工程、Spring框架IOC、AOP学习SpringMVC框架学习
SpringBoot框架学习招聘网站框架项目Vue介绍、窗体内操作、窗体间操作学习
Vue路由配置、网络请求访问框架项目、element组件介绍学习标准管理系统Vue项目
微服务
Linux安装、Nginx反向代理、负载均衡学习Docker学习Jenkins学习
Nexus学习Spring Security学习RabbitMQ学习
Redis学习MongoDB学习MongoDB学习
Nacos学习Spring Session学习Spring Gateway学习
JSR 303学习OpenFeign学习Hystrix学习

文章目录

  • 系列文章目录
  • 前言
  • 一、Spring Gateway介绍
  • 二、设置Spring Gateway
    • 1. 启动Nacos
    • 2. 创建Maven项目
    • 3. 添加依赖
    • 4. 编写bootstrap.yml配置文件
    • 5. 编写application.properties配置文件
    • 6. 编写SpringBootMain文件
    • 7. 启动后,访问Nacos
  • 三、网关配置
    • 1. 注释依赖
    • 2. 添加依赖
    • 2. 添加application.yml配置文件
    • 3. 运行项目,访问百度
  • 总结


前言

本文我们要讲述:
Spring Gateway
在下攸攸太上,我要给你们介绍Spring Gateway。


一、Spring Gateway介绍

Spring Session是一个具有路由、断言和过滤器等核心功能的框架。它用于设置转发地址、判断真实应该请求什么地址,以及过滤地址和处理参数。

网关是后台服务的统一入口,类似于网络中的网关。在微服务架构中,网关是必备的服务,它提供统一的入口,解决跨域、负载均衡、微服务通信等问题,实现整体管理和通信。

使用网关的主要目的是实现请求转发。在没有网关的情况下,前端需要知道每个微服务的IP地址和端口才能发送请求,这样前端需要管理大量的微服务。此外,前端无法进行负载均衡,无法确定请求应该发送到哪个微服务实例。通过使用网关,前端只需要知道网关的地址,然后通过反向代理将请求转发给网关。网关在内部通过集成负载均衡器来选择合适的微服务实例处理请求。

对于前端来说,发送的请求不是直接到网关的地址,而是通过Nginx等反向代理到达网关。这样,前端只需要知道反向代理服务器(如Nginx)的地址,而不需要直接暴露网关的地址。

一般情况下,网关会作为一个独立的微服务存在,为了实现请求转发和整体管理。通过使用网关,可以简化前端的工作,实现负载均衡,提高系统的可扩展性和管理性。

二、设置Spring Gateway

1. 启动Nacos

docker start nacos

在这里插入图片描述

2. 创建Maven项目

在这里插入图片描述

3. 添加依赖

    <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.7.RELEASE</version></parent><properties><java.version>1.8</java.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><spring-boot.version>2.6.13</spring-boot.version><jwt.version>0.7.0</jwt.version><fastjson.version>1.2.60</fastjson.version><spring-cloud-alibaba.version>2.0.3.RELEASE</spring-cloud-alibaba.version><spring-cloud.version>Finchley.SR2</spring-cloud.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</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><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><classifier>exec</classifier></configuration></plugin></plugins></build>

4. 编写bootstrap.yml配置文件

spring:cloud:nacos:discovery:server-addr: 192.168.219.186:8848config:server-addr: 192.168.219.186:8848inetutils:preferred-networks: 192.168.56

server-addr代表自己的虚拟机地址

5. 编写application.properties配置文件

注意不要有空格、注释啥的

spring.application.name=gateway
server.port=300

6. 编写SpringBootMain文件

package com.jjy;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class SpringBootMain {public static void main(String[] args) {SpringApplication.run(SpringBootMain.class,args);}
}

7. 启动后,访问Nacos

在服务管理的服务列表下能看到本项目的服务
在这里插入图片描述

三、网关配置

1. 注释依赖

        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>

2. 添加依赖

        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><scope>compile</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><scope>compile</scope></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId></dependency>

在这里插入图片描述

2. 添加application.yml配置文件

spring:cloud:gateway:routes:- id: baidu_routeuri: https://www.baidu.compredicates:- Query=baidu

3. 运行项目,访问百度

访问如下地址才能跳转百度http://localhost:300/baidu?baidu,后面的baidu代表Query=baidu,这个baidu可以写成别的然后网址问号后面写别的就可以
直接访问http://localhost:300/baidu无法访问,我已经吃过一次好奇心的亏了,你们不要去吃


总结

本文讲述了:
Spring Gateway:用于转发
在下攸攸太上,最近疯狂发文章,只是为了得到一周九篇才能拿到的劳模勋章,距离劳模勋章还差0篇!呜呼!!

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

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

相关文章

高性能防静电主轴4033 AC-ESD 在线路板切割中的非凡表现

随着电子产品的日益小型化/集成化&#xff0c;线路板的制造也面临着更高的挑战。线路板分板作为电子制造流程中的关键环节&#xff0c;其效率和精度直接影响到最终产品的质量和市场竞争力。因此专用的高性能防静电主轴SycoTec 4033 AC-ESD凭借其卓越的性能&#xff0c;成为众多…

笔记本电脑怎么多选删除文件?误删除文件怎么办

在日常使用笔记本电脑中&#xff0c;我们可能会遇到需要删除大量文件的情况&#xff0c;例如清理临时文件、整理文档或卸载不再需要的程序。手动一个一个地删除不仅效率低下&#xff0c;还可能遗漏某些文件。那么&#xff0c;如何在笔记本电脑上高效地进行多选删除操作呢&#…

15分钟学 Python 第33天 :函数式编程简介

Day 33: 函数式编程简介 1. 引言 函数式编程是一种程序设计范式&#xff0c;它将计算视为数学函数的求值&#xff0c;避免了程序中的可变状态和副作用。Python虽然是一种多范式语言&#xff08;支持命令式、面向对象和函数式编程&#xff09;&#xff0c;但其函数式编程的特性…

WPF之UI进阶--控件样式与样式模板及词典

WPF的优势之一就是能够更加容易快捷的对窗体和控件的外面进行改造&#xff0c;换句话说&#xff0c;那就是UI设计个性化更加容易。主要是借助了样式、模板及词典来实现的。那么本篇博文就一一对他们进行介绍。 文章目录 一、样式1: 定义样式2: 使用Setter设置属性关于Property和…

CSS3--美开二度

免责声明&#xff1a;本文仅做分享&#xff01; 目录 定位 相对定位 绝对定位 定位居中 固定定位 堆叠层级 z-index 定位-小结 CSS 精灵 京东案例 字体图标 下载字体 使用字体 上传矢量图 CSS 修饰属性 垂直对齐方式 vertical-align 过渡 transition 透明度 opa…

二、kafka生产与消费全流程

一、使用java代码生产、消费消息 1、生产者 package com.allwe.client.simple;import lombok.extern.slf4j.Slf4j; import org.apache.kafka.clients.producer.KafkaProducer; import org.apache.kafka.clients.producer.ProducerConfig; import org.apache.kafka.clients.pr…

C# 游戏引擎中的协程

前言 书接上回&#xff0c;我谈到了Unity中的协程的重要性&#xff0c;虽然协程不是游戏开发“必要的”&#xff0c;但是它可以在很多地方发挥优势。 为了在Godot找回熟悉的Unity协程开发手感&#xff0c;不得不自己做一个协程系统&#xff0c;幸运的是&#xff0c;有了Unity的…

TI DSP TMS320F280025 Note15:串口SCI的使用

TMS320F280025 串口SCI的使用 ` 文章目录 TMS320F280025 串口SCI的使用框图分析串口特点可编程数据格式SCI端口中断非FIFO/FIFO模式下SCI中断的操作/配置UartDriver.cUartDriver.h串口时钟由PCLKCR7控制使能,默认位系统时钟4分频 串口接收与发送都可以触发中断 串口使用的引脚…

JAVA并发编程高级——JDK 新增的原子操作类 LongAdder

LongAdder 简单介绍 前面讲过,AtomicLong通过CAS提供了非阻塞的原子性操作,相比使用阻塞算法的同步器来说它的性能已经很好了,但是JDK开发组并不满足于此。使用AtomicLong 时,在高并发下大量线程会同时去竞争更新同一个原子变量,但是由于同时只有一个线程的CAS操作会成功,…

【C语言】指针篇 | 万字笔记

写在前面 在学习C语言过程&#xff0c;总有一个要点难点离不开&#xff0c;那就是大名鼎鼎的C语言指针&#xff0c;也是应为有指针的存在&#xff0c;使得C语言一直长盛不衰。因此不才把指针所学的所有功力都转换成这个笔记。希望对您有帮助&#x1f970;&#x1f970; 学习指…

基于Springboot+Vue的饮食营养管理信息系统(含源码数据库)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 系统中…

Hystrix学习

系列文章目录 JavaSE基础知识、数据类型学习万年历项目代码逻辑训练习题代码逻辑训练习题方法、数组学习图书管理系统项目面向对象编程&#xff1a;封装、继承、多态学习封装继承多态习题常用类、包装类、异常处理机制学习集合学习IO流、多线程学习仓库管理系统JavaSE项目员工…

MAC M1 安装brew 配置环境变量,安装dart

一. 下载 brew 1. 终端输入 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 2. 如遇到下载失败情况&#xff0c;需要VPN/代理 curl: (7) Failed to connect to raw.githubusercontent.com port 443 after 8 m…

MongoDB简介

1、说到MongoDB就必须说下什么是NoSQL? NoSQL(NoSQL Not Only SQL)&#xff0c;意即反SQL运动&#xff0c;指的是非关系型的数据库&#xff0c;是一项全新的数据库革命性运动&#xff0c;早期就有人提出&#xff0c;发展至2009年趋势越发高涨。NoSQL的拥护者们提倡运用非关系…

Java | Leetcode Java题解之第454题四数相加II

题目&#xff1a; 题解&#xff1a; class Solution {public int fourSumCount(int[] A, int[] B, int[] C, int[] D) {Map<Integer, Integer> countAB new HashMap<Integer, Integer>();for (int u : A) {for (int v : B) {countAB.put(u v, countAB.getOrDefa…

被字节恶心到了

字节 日常逛 xhs 看到一篇吐槽贴&#xff0c;表示被公司恶心到了&#xff1a; 这位网友表示&#xff0c;最近是公司举办了 Q2 和 H1 的优秀员工表彰&#xff0c;自己的 1&#xff08;直属领导&#xff09;评上了&#xff0c;但仔细一看&#xff0c;1 获奖的所有产出都是自己的&…

实时数字人DH_live使用案例

参看: https://github.com/kleinlee/DH_live ubuntu 测试 apt install ffmpeg 下载安装: git clone https://github.com/kleinlee/DH_live.git cd DH_liveconda create -n dh_live python=3.12 conda activate dh_live pip install -r requirements.txt pip install torch …

突发:Sam万字长文,OpenAI o1超越人类,o1模型训练原理、微调、能力来源-AI已死,大模型当立

OpenAl o1大模型&#xff1a;原理、突破、前景及影响 北京时间2024年9月13日凌晨&#xff0c;OpenAI正式发布了新的人工智能模型o1&#xff08;o是orion猎户座&#xff0c;1代表从头再来&#xff0c;也意味着后续将出现更多序列&#xff09;&#xff0c;就是此前OpenAI一直在高…

银河麒麟V10 SP1如何进入救援模式?

银河麒麟V10 SP1如何进入救援模式&#xff1f; 1、准备工作2、进入BIOS/UEFI进入救援模式注意事项 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 在使用银河麒麟高级服务器操作系统V10 SP1时&#xff0c;如果遇到系统无法正常启动或需要进…

240 搜索二维矩阵 II

解题思路&#xff1a; \qquad 解这道题最重要的是如何利用从左到右、从上到下为升序的性质&#xff0c;快速找到目标元素。 \qquad 如果从左上角开始查找&#xff0c;如果当前matrix[i][[j] < target&#xff0c;可以向右、向下扩展元素都是升序&#xff0c;但选择哪个方向…