【2025版】SpringCloud Gateway网关快速入门

文章目录

一、认识网关

前端请求不能直接访问微服务,而是要请求网关:

  • 网关可以做安全控制,也就是登录身份校验,校验通过才放行
  • 通过认证后,网关再根据请求判断应该访问哪个微服务,将请求转发过去

二、快速入门

1. 引入依赖

xml 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.12</version>
        <relativePath/>
    </parent>
    <groupId>com.paran</groupId>
    <artifactId>gateway_demo</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    <dependencies>
        <!-- ===== 核心依赖 ===== -->
        <!--网关-->
        <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>
        <!--openFeign-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
        <!--负载均衡器-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-loadbalancer</artifactId>
        </dependency>
        <!--OK http 的依赖 -->
        <dependency>
            <groupId>io.github.openfeign</groupId>
            <artifactId>feign-okhttp</artifactId>
        </dependency>

    </dependencies>
    <dependencyManagement>
        <dependencies>
            <!-- Spring Cloud 版本管理 -->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>2021.0.3</version> <!-- 与 Alibaba 版本匹配 -->
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!-- Spring Cloud Alibaba 版本管理 -->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2021.0.4.0</version> <!-- 根据实际版本调整 -->
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

</project>

2. 配置yml

主要是yml里的路由规则配置,这里只是简单演示,还有路由过滤器可以配置,需要用到的时候再找资料

yml 复制代码
server:
  port: 8090  # 服务端口

spring:
  application:
    name: gateway-service  # 服务名(Nacos 中唯一标识)
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848  # Nacos 地址
    gateway:
      routes:
        - id: order-service # 路由规则id,自定义,唯一
          uri: lb://order-service # 路由的目标服务,lb代表负载均衡,会从注册中心拉取服务列表
          predicates: # 路由断言,判断当前请求是否符合当前规则,符合则路由到目标服务
            - Path=/order/** # 这里是以请求路径作为判断规则
feign:
  okhttp:
    enabled: true # 开启OKHttp功能
logging:
  level:
    com.paran: DEBUG

3. 测试

向8090端口发送请求,最终也能正确路由到提供order-service的某个端口上

相关推荐
paopaokaka_luck1 小时前
基于Spring Boot+Vue的吉他社团系统设计和实现(协同过滤算法)
java·vue.js·spring boot·后端·spring
曹朋羽2 小时前
spring cloud sentinel 动态规则配置
spring·spring cloud·sentinel
做一位快乐的码农6 小时前
基于Spring Boot和Vue电脑维修平台整合系统的设计与实现
java·struts·spring·tomcat·电脑·maven
一枚小小程序员哈11 小时前
基于springboot的零食商城的设计与实现/零食销售系统的设计与实现
java·spring boot·spring·tomcat·maven
xxy!13 小时前
Spring MVC数据传递全攻略
spring·mvc
法欧特斯卡雷特17 小时前
【译】Spring I&O 社区专家聊 Jimmer ORM
后端·spring·面试
Code季风18 小时前
Spring 异常处理最佳实践:从基础配置到生产级应用
java·spring boot·spring
Code季风18 小时前
Spring IoC 容器性能提升指南:启动速度与运行效率优化策略
java·spring·性能优化
麦兜*21 小时前
基于Spring Boot的审计日志自动化解决方案,结合SpEL表达式和AOP技术,实现操作轨迹自动记录,并满足GDPR合规要求
java·jvm·spring boot·后端·spring·spring cloud·maven
孟婆来包棒棒糖~1 天前
SpringCloude快速入门
分布式·后端·spring cloud·微服务·wpf