zuul详细原理图
2021-04-21 16:22:03 7 举报
zuul详细原理图
作者其他创作
大纲/内容
RibbonRoutingFilter将请求转发到服务的
获取pre类型过滤器,按优先级排序
PreDecocationFilter解析请求URI根据我们的请求url地址,去匹配我们的application.yml中的路由规则的配置,然后拿到了请求url对应的路由规则设置到请求头中
ThreadLocal中获取RequestContent
post过滤器
和application.yml中路由规则进行匹配
SendResponseFilter将结果响应给浏览器
LocationRewriteFilter重定向才执行
是
ZuulServlet
pre过滤器
HttpClientRibbonCommand.execute()(本质是 HystrixCommand)
error过滤器
FromBodyWrapperFilter处理传输的文件或媒体类型
AbstractRibbonCommand核心 run()
SendForwardFilter将请求转发到zuul网关服务自己的一个接口上去
是否报错
Hystrix 超时,降级,熔断,异常,拒绝
-3:ServletDetectionFilter-2:Servlet30WrapperFilter-1:FromBodyWrapperFilter1:DebugFilter5:PreDecorationFilter数字越小,优先级越高
路由规则放入到RequestContent中
ServletDetectionFilterRequestContext:isDispatcherServletRequest = true
SimpleHostRoutingFilter将请求转发到某个url地址的
DebugFilter参数debug=true才会执行作用打印debug日志
spring-web工具类,解析请求URI
HttpServletRequestWrapper包裹ServletResponse(装饰器模式)
Servlet30WrapperFilter包裹了一下原生的HttpServletRequest,装饰模式
执行请求
ZoneAwareLoadBalancerDomainExtractingServerList ribbon的ribbon 与eureka的整合
原生ServletRequest
否
用户
初始化
清理线程中的RequestContent
route过滤器
0 条评论
下一页