创建子工程
:::tips
在SpringCloud父工程下创建一个gateway子工程,注意指定父工程
:::
引入依赖
:::tips 在gateway工程中引入gateway依赖以及Nacos注册中心的起步依赖 :::
<!-- gateway依赖 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<!-- Nacos注册中心依赖 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
编写代码
创建启动类
@SpringBootApplication
public class GatewayApplication {
public static void main(String[] args) {
SpringApplication.run(GatewayApplication.class, args);
}
}
创建配置文件
:::tips 在gateway工程中添加配置,配置网关路由规则(通过路径匹配) :::
server:
#配置服务端口
port: 端口号
spring:
application:
#配置服务名称
name: gateway
cloud:
nacos:
#配置Nacos地址
server-addr: localhost:8848
#Gateway网关配置
gateway:
#网关路由配置
routes:
#自定义路由id,必须唯一
- id: user-service
#配置路由的目标地址,lb是负载均衡,后面填写服务名称
uri: lb://userservice
#路由断言,也就是判断请求是否符合路由的条件
predicates:
#按照请求路径匹配路由规则,请求路径以/user开头的请求就会被路由到配置的微服务中
- Path=/user/**
在配置文件中配置的断言规则都是字符串,这些字符串会被PredicateFactory读取并处理,转变为路由判断的条件,例如Path=/user/**是按照路径匹配,这个规则是由PathRoutePredicateFactory类来处理的,像这样的断言工厂在SpringCloudGateway还有十几个:网关断言工厂