统一网关Gateway
1 网关的作用
1.对用户请求做身份认证、权限校验
2.将用户请求路由到微服务,并实现负载均衡
3.对用户请求做限流,防止并发数过多使微服务崩溃
2.搭建网关服务
创建新的模块,导入SpringCloudGateway的依赖和nacos的服务发现依赖
因为Gateway本身也是一个微服务,需要注册到nacos中去,被nacos发现
<!--nacos的服务发现依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!-- 网关依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
编写路由配置及nacos地址:
路由配置包括
1.路由id:路由的唯一标识
2.路由目标:路由的目标地址,lb代表根据服务名负载均衡
3.路由断言:判断路由规则
4.路由过滤器:对请求或响应做处理
server:
port: 10010
spring:
application:
name: gateway #服务名称
cloud:
nacos:
server-addr: localhost:8848 #nacos地址
gateway:
routes: #网关的路由配置
- id: user-service #路由id 可自定义但要保证唯一性
uri: lb://userservice #路由的目标地址
predicates: #判断请求是否符合路由规则的条件
- Path=/user/**
- id: order-service #路由id 可自定义但要保证唯一性
uri: lb://orderservice #路由的目标地址
predicates: #判断请求是否符合路由规则的条件
- Path=/order/**
访问10010/order/101,成功获取数据,说明gateway路由成功