开发者学堂课程【精通Spring Cloud Alibaba:GateWay 核心配置类源码分析】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/634/detail/10128
GateWay 核心配置类源码分析
内容简介
一、GatewayAutoConfiguration
二、谓词类型
三、GatewayLoadBalancerClientAutoConfiguration.
四、Spring Boot 项目源码的入口
一、GatewayAutoConfiguration
org.springframework.cloud.gateway.config.GatewayAutoConfiguration, \
GatewayAutoConfiguration 是最为核心的
@Bean
public GatewayProperties gatewayProperties() { return new GatewayProperties();}
表示在配置文件中注入的
@NotNull
@Valid
private List<RouteDefinitionroutes = new ArrayList<>();
二、谓词类型
1、后路线谓词工厂
2、之前路线谓词工厂
3、路由谓词间工厂
4、Cookie 路线谓词工厂
5、标头路由谓词工厂
6、主机路由谓词工厂
7、方法路线谓词工厂
8、路径路线谓词工厂
9、查询路由谓词工厂
10、RemoteAddr 路由谓词工厂
11、重量路线谓词工
三、GatewayLoadBalancerClientAutoConfiguration
org .springframework.cloud.gateway.config.GatewayLoadBalancerClientAutoConfiguration, \表示网关需要使用的负载均衡
@Bean
@Conditional0nBean(LoadBalancerClient.class)
public LoadBalancerClientFilter loadBalancerClientFilter(LoadBalancerClient client){
return new LoadBalancerClientFilter(client) ;
}
public class LoadBalancerClientFilter implements GlobalFilter,Ordered {
private static final Log log = LogFactory.getLog(LoadBalancerClientFilter.class);
public static final int LOAD_BALANCER_CLIENT_FILTER_ORDER = 10100;
private final LoadBalancerClient loadBalancer;
public LoadBalancerClientFilter(LoadBalancerClient loadBalancer) {
this.loadBalancer = loadBalancer;
}
作用到 GateWayWebHandler
@Override
public int getOrder() { return LOAD_BALANCER_CLIENT_FILTER_ORDER;}
Order 值最小,最优先执行
return chain.filter(exchange);
调用 filter 是因为他有不同的用途
四、Spring Boot 项目源码的入口
1. Gateway Class Path Warning Auto Configuration 作用检查是否配置我们 web fux 依赖。
2. Gateway Auto Configuration 加载了我们 Gateway 需要的注入的类。
3. Gateway Load Balancer Client Auto Configuration 网关需要使用的负载均衡
Lb//may i k t-member// 根据服务名称查找真实地址
4. GatewayRed i sAutoCon f i gurat i on 网关整合 Red i s 整合 Lua 实现限流
5. GatewayD i scoveryC l ientAutoConf i gurat ion 服务注册与发现功能