1.网关的作用
2.网关入门
2.1引入依赖
<dependencies><dependency><groupId>com.heima</groupId><artifactId>hm-common</artifactId><version>1.0.0</version></dependency><!--网关--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId></dependency><!--nacos discovery--><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-loadbalancer</artifactId></dependency></dependencies><build><finalName>${project.artifactId}</finalName><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
2.2配置文件
server:port: 8080 #网关端口
spring:application:name: geteway #服务名称cloud:nacos:server-addr: 127.0.0.1 #nacos地址gateway:routes:- id: item-service #iduri: lb://item-service #lb负载均衡,item-service微服务名称predicates: #断言- Path=/items/**,/search/** #断言路径
2.3启动类
@SpringBootApplication
public class GatewayApplication {public static void main(String[] args) {SpringApplication.run(GatewayApplication.class,args);}
}
3.网关登录校验流程
4.网关校验身份
4.1网关内过滤器流程图
注:需在转发过滤器之前进行校验用户身份
4.2实现全局过滤器GlobalFilter的filter和Ordered的getOrder;
注:前者可以在其中进行校验,后者可以设置过滤器的执行顺序,需大于int的最大值
5.微服务获取用户信息
5.1流程图
5.2网关拦截器保存用户信息到请求头
5.3微服务拿取请求头并存储
6.微服务之间传递用户信息
注:实现OpenFeign的RequestInterceptor接口的apply接口即可,使用OpenFegin进行远程调用时会自动处理