天天看點

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