<?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 https://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>3.3.1</version> <relativePath/> </parent> <artifactId>mall-gateway</artifactId> <version>0.0.1-SNAPSHOT</version> <name>mall-gateway</name> <description>mall-gateway</description> <properties> <java.version>17</java.version> <gateway.version>4.1.4</gateway.version> <bootstrap.version>4.1.3</bootstrap.version> <nacos-discovery.version>2023.0.1.0</nacos-discovery.version> <nacos-config.version>2023.0.1.0</nacos-config.version> <loadbalancer.version>4.1.3</loadbalancer.version> </properties> <dependencies> <!-- gateway网关 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway</artifactId> <version>${gateway.version}</version> </dependency> <!-- nacos服务注册与发现 --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>${nacos-discovery.version}</version> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> <version>${nacos-config.version}</version> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bootstrap</artifactId> <version>${bootstrap.version}</version> </dependency> <!-- 使用gateway的负载均衡,必须导入此依赖--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-loadbalancer</artifactId> <version>${loadbalancer.version}</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
server:
port: 9000 # 网关端口
spring:
application:
name: mall-gateway # 服务名称
cloud:
nacos:
server-addr: localhost:8848 # nacos地址
config:
namespace: a3836a4b-32a0-4ea2-9a9c-bd0a13038899
group: mall-service
server-addr: localhost:8848
prefix: mall-gateway
file-extension: yaml
discovery:
group: mall-service
namespace: a3836a4b-32a0-4ea2-9a9c-bd0a13038899
server-addr: localhost:8848
gateway:
routes: # 网关路由配置
- id: user-service # 路由id,自定义,只要唯一即可
# uri: http://127.0.0.1:8081 # 路由的目标地址 http就是固定地址
uri: lb://mall-user-service # 路由的目标地址 lb就是负载均衡,后面跟服务名称
predicates: # 路由断言,也就是判断请求是否符合路由规则的条件
- Path=/user-service/** # 这个是按照路径匹配,只要以/user/开头就符合要求
GET http://localhost:9000/user-service/user/findOrdersByUserId/1
HTTP/1.1 404 Not Found
transfer-encoding: chunked
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Date: Wed, 03 Jul 2024 14:20:53 GMT{
"timestamp": "2024-07-03T14:20:53.307+00:00",
"status": 404,
"error": "Not Found",
"path": "/user-service/user/findOrdersByUserId/1"
}
Response file saved.
> 2024-07-03T222053.404.jsonResponse code: 404 (Not Found); Time: 12ms (12 ms); Content length: 127 bytes (127 B)