【2025版】SpringCloud Gateway网关快速入门
文章目录
- 一、认识网关
- 二、快速入门
- 1. 引入依赖
- 2. 配置yml
- 3. 测试
一、认识网关
前端请求不能直接访问微服务,而是要请求网关:
- 网关可以做安全控制,也就是登录身份校验,校验通过才放行
- 通过认证后,网关再根据请求判断应该访问哪个微服务,将请求转发过去
二、快速入门
1. 引入依赖
<?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里的路由规则配置,这里只是简单演示,还有路由过滤器可以配置,需要用到的时候再找资料
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的某个端口上