1. 创建SpringBoot工程gateway,引入网关依赖
2. 编写启动类
3. 编写基础配置和路由规则
4. 启动网关服务进行测试
implementation 'org.springframework.cloud:spring-cloud-starter-gateway'
implementation 'com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery'
implementation 'org.springframework.cloud:spring-cloud-starter-loadbalancer'
package edu.uestc.canary.gateway;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class GatewayApplication {
public static void main(String[] args) {
SpringApplication.run(GatewayApplication.class, args);
}
}
server:
port: 10010 # 网关端口
spring:
application:
name: gateway # 服务名称
cloud:
nacos:
server-addr: localhost:8848 # nacos地址
gateway:
routes: # 网关路由配置
- id: category-service # 路由id,自定义,只要唯一即可
# uri: http://127.0.0.1:8088 # 路由的目标地址 http就是固定地址
uri: lb://categoryservice # 路由的目标地址 lb就是负载均衡,后面跟服务名称
predicates: # 路由断言,也就是判断请求是否符合路由规则的条件
- Path=/category/** # 这个是按照路径匹配,只要以/category/开头就符合要求
我们将符合Path 规则的一切请求,都代理到 uri参数指定的地址。
本例中,我们将 /category/**开头的请求,代理到`lb://categoryservice,lb是负载均衡,根据服务名拉取服务列表,实现负载均衡。
重启网关,访问http://localhost:10010/category/1时,符合/category/**规则,请求转发到uri:http://categoryservice/category/1,得到了结果