Spring Cloud Gateway快速开始
第一步:POM文件引入
<?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"> <parent> <artifactId>vnacos</artifactId> <groupId>com.nacos</groupId> <version>0.0.1-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>geteway</artifactId> <properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> </properties> <dependencies> <!--gateway的依赖 springcloud开发--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway</artifactId> </dependency>
注意:会和spring-webmvc的依赖冲突,需要排除spring-webmvc
</dependencies> </project>
第二步:配置文件
server: port: 8088 spring: application: name: api-gateway cloud: gateway: # gateway的配置 routes: #路由规则 - id: order_route # 路由的唯一标识,路由到order uri: http://localhost:80 #需要转发的地址 predicates: #断言规则 用于路由规则的匹配 - Path=/order-serv/** # http://localhost:8088/order-serv/vn/order 路由转到 http://localhost:80/order-serv/vn/order filters: - StripPrefix=1 # 转发之前去掉1层路径 变成 -> http://localhost:80/vn/order
以上最简单的网关配置完成
Nacos整合Gateway:
POM文件:
<?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"> <parent> <artifactId>vnacos</artifactId> <groupId>com.nacos</groupId> <version>0.0.1-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>geteway</artifactId> <properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> </properties> <dependencies> <!--gateway的依赖 springcloud开发--> <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> </dependencies> </project>
配置文件:
server: port: 8088 spring: application: name: api-gateway cloud: gateway: # gateway的配置 routes: #路由规则 - id: order_route # 路由的唯一标识,路由到order uri: lb://order-service #需要转发的地址 lb: 使用nacos中的本地负载均衡策略 order-service服务名 predicates: #断言规则 用于路由规则的匹配 - Path=/order-serv/** # http://localhost:8088/order-serv/vn/order 路由转到 http://localhost:80/order-serv/vn/order filters: - StripPrefix=1 # 转发之前去掉1层路径 变成 -> http://localhost:80/vn/order nacos: server-addr: 192.168.43.197:8848 discovery: username: nacos password: nacos
Nacos整合Gateway简单模式:
配置文件:
server: port: 8088 spring: application: name: api-gateway cloud: nacos: server-addr: 192.168.43.197:8848 discovery: username: nacos password: nacos gateway: discovery: locator: enabled: true