天天看点

spring-cloud-zuul之spring-cloud-1.3.4(Dalston.SR3)-boot(1.5.6) 学习笔记spring-cloud-zuul之spring-cloud-1.3.4(Dalston.SR3)-boot(1.5.6) 学习笔记

spring-cloud-zuul之spring-cloud-1.3.4(Dalston.SR3)-boot(1.5.6) 学习笔记

概述

  • 参考
    • http://blog.didispace.com/springcloud5/
    • http://blog.didispace.com/spring-cloud-source-zuul/
    • http://blog.csdn.net/undergrowth/article/details/78035935

EnableZuulProxy—->开启ZuulProxyMarkerConfiguration.Marker开关,打开ZuulProxyAutoConfiguration配置

  • 引入EnableCircuitBreaker熔断支持
  • 引入EnableDiscoveryClient服务发现支持

ZuulProxyAutoConfiguration—->zuul代理自动配置,继承ZuulServerAutoConfiguration

  • 注入DiscoveryClient,支持eureka服务发现
  • 注入PreDecorationFilter,pre过滤器,用于在RequestContext设置是routeHost还是serviceId,给route级别过滤器进行处理
  • 注入RibbonRoutingFilter,route过滤器,支持ribbon/hystrix构建RibbonCommand(HystrixCommand)以serviceId配置方式进行路由
  • 注入SimpleHostRoutingFilter,route过滤器,支持直接url配置方式以httpclient方式进行路由

ZuulServerAutoConfiguration—->配置spring-zuul支持,将配置path进行路由转换

  • 注入ZuulProperties,用于解析配置的zuul.routes的配置信息
  • 注入ZuulController控制器,引入ZuulServlet,连接spring-zuul与zuul的桥梁
  • 注入ZuulHandlerMapping映射器,将配置在ZuulProperties中的path映射到ZuulController中的ZuulServlet进行一系列的过滤器处理
  • 注入pre/post级别的过滤器(filters)
  • 注入ZuulFilterInitializer初始化,用于将注入的filters引入到zuul体系,通过filterRegistry引入
  • 注入一系列的指标监控信息相关bean

其他支持

  • FilterConstants—->过滤器级别常量等支持
  • SimpleRouteLocator—->RouteLocator—->路由定位支持,通过path找到Route信息
  • ZuulProperties—->zuul属性支持,存放routes以Map的路由信息
  • HttpClientRibbonCommandFactory—->AbstractRibbonCommandFactory—->RibbonCommandFactory—->httpclient的ribboncommand支持

测试

  • 示例代码位于– https://github.com/undergrowthlinear/2016MyBookSummary.git