springcloud gateway 跳转http_20.SpringCloud实战项目-SpringCloud整合Gateway网关

本文是SpringCloud Gateway的实战教程,详细介绍了如何创建和配置Gateway作为微服务的API网关,包括路由转发、权限校验、Nacos集成。通过示例演示了如何设置HTTP跳转规则,例如将特定请求路径重定向至QQ和百度网站。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SpringCloud实战项目全套学习教程连载中

PassJava 学习教程

简介

  • PassJava-Learning项目是PassJava(佳必过)项目的学习教程。对架构、业务、技术要点进行讲解。
  • PassJava 是一款Java面试刷题的开源系统,可以用零碎时间利用小程序查看常见面试题,夯实Java基础。
  • PassJava 项目可以教会你如何搭建SpringBoot项目,Spring Cloud项目
  • 采用流行的技术,如 SpringBoot、MyBatis、Redis、 MySql、 MongoDB、 RabbitMQ、Elasticsearch,采用Docker容器化部署。

更好的阅读体验

  • 文档地址:http://www.jayh.club
  • 备用地址:https://jackson0714.github.io/PassJava-Learning

文档连载目录

  • 打造一款 刷Java 知识的小程序
  • 打造一款 刷Java 知识的小程序(二)
  • 01.五分钟搞懂分布式基础概念
  • 02.快速搭建Linux环境-运维必备
  • 03.配置虚拟机网络
  • 04.安装Docker
  • 05.Docker安装mysql
  • 06.Docker安装redis
  • 07.本地开发环境配置
  • 08.配置Git
  • 09.初始化项目和添加微服务
  • 10.PassJava-微服务划分图
  • 11.初始化数据库和表
  • 12.搭建管理后台
  • 13.自动生成前后端代码
  • 14.整合MyBatis-Plus实现CRUD
  • 15.生成所有微服务的CRUD代码
  • 16.Spring Cloud Alibaba 组件简介
  • 17.SpringCloud整合Alibaba-Nacos组件
  • 18.SpringCloud整合OpenFeign组件
  • 19.SpringCloud整合Alibaba-Nacos配置中心
  • 20.SpringCloud整合Gateway网关
  • 21.管理后台-题目类型功能

Spring Cloud 整合Gateway网关

1.Gateway网关介绍

  • 网关:流量的入口
  • 网关常用功能:路由转发,权限校验,限流控制
  • Spring Cloud Gateway是Spring Cloud官方推出的第二代网关框架
  • Spring Cloud Gateway取代了netflix的Zuul网关

2.Gateway原理

PassJava项目中,小程序和管理后台请求先访问到API网关.

API网关通过注册中心实时感知微服务的状态的路由地址,准确地将请求路由到各个服务.

f171828279fa319948f051adf4133300.png

官方文档:https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.2.2.RELEASE/reference/html/

b03260301de905993b5edd8539f7427c.png
  • 请求到达网关后,先经过断言Predicate,是否符合某个路由规则

  • 如果符合,则按路由规则路由到指定地址

  • 请求和响应都可以通过过滤器Filter进行过滤

3.创建Gateway 模块

  • 适用Spring 初始化器创建Gateway module

20b948e1cabe5509a107194da95af43c.png
  • 创建module

31371a53e430983502b775c90a26e312.png
  • 选择Gateway依赖

184eba8befee1dfcd37eefc8e8a28597.png
  • 引入Gateway模块
<module>passjava-gateway</module>

4.配置Gateway

  • 引入Nacos组件

因common模块引入了nacos注册中心组件,所以我们可以直接引用common模块

<dependency>
    <groupId>com.jackson0714.passjava</groupId>
    <artifactId>passjava-common</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</dependency>
  • 应用类上添加注解@EnableDiscoveryClient
@RefreshScope
@EnableDiscoveryClient
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
public class PassjavaGatewayApplication {
    public static void main(String[] args) {
        SpringApplication.run(PassjavaGatewayApplication.class, args);
    }
}

5.使用Gateway demo

  • 新建application.yml文件

    spring:
      cloud:
        gateway:
          routes:
            - id: route_qq
              uri: http://www.qq.com
              predicates:
                - Query=url,qq
            - id: route_baidu
              uri: http://www.baidu.com
              predicates:
                - Query=url,baidu

    第一条路由规则:当请求路径中包含url=qq,则跳转到http://www.qq.com

    第二条路由规则:当请求路径中包含url=baidu,则跳转到http://www.baidu.com

后续在PassJava项目中使用Gateway的强大功能.

代码地址

https://github.com/Jackson0714/PassJava-Platform

公众号

847f17e1de4f10c1840254bd08c3adc6.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值