今天和大家一起分析Zuul 源码,网关服务路由的功能,
1、从启动类注解开始:
创建一个对象起到一个标识过滤作用
2、找到相关jar包:
两个很重要的类:
进入 ZuulServerAutoConfiguration,创建 controller和Maping、核心处理类ZuulServet等多个过滤器
ZuulController继承特殊的controller接口,
3、返回来继续:
4、点击进入:三个核心方法依次调用, zuulServlet 中就涉及到 pre、route、post、error 过滤器的调用
5、其中分析一个 route 过滤器,这个过滤器是 zuul 做路由的调用的
6、点击拿到所有过滤器,排序依次调用
7、最终调到run方法
8、这是调用流程,我们通过SPI机制再看它的过滤器:
9、点击来到核心过滤器:
10、继续进入
11、点击 forward 方法,发现又跳转到Hystrix内容中了:
到此Zull源码的流程分析完了,大家一定要按照这个思路,好好研读!下一篇我们分析Config配置中心源码,敬请期待!