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