SpringCloud Zuul在何种情况下使用Hystrix及问题小结
"SpringCloud Zuul在何种情况下使用Hystrix及问题小结" SpringCloud Zuul在何种情况下使用Hystrix是指在Zuul路由中 何时使用Hystrix来处理路由请求。Hystrix是Netflix提供的一个 latency and fault tolerance library,主要用于处理分布式系统中的延迟和故障问题。在Zuul中,Hystrix被用来处理RouteFilter中 的路由请求。 在Zuul的自动配置类ZuulServerAutoConfiguration和ZuulProxyAutoConfiguration中,总共会向Spring容器注入3个Zuul的RouteFilter,分别是SimpleHostRoutingFilter、RibbonRoutingFilter和SendForwardFilter。 SimpleHostRoutingFilter是通过HttpClient向预定的URL发送请求的路由Filter,生效条件是RequestContext中的routeHost不为空,routeHost就是URL,即使用URL直连。 RibbonRoutingFilter是使用Ribbon、Hystrix和可插入的http客户端发送请求的路由Filter,生效条件是RequestContext中的routeHost为空,即URL为空,RequestContext中的serviceId不为空,并且RequestContext中的sendZuulResponse为true,即是否将response发送给客户端,默认为true。 SendForwardFilter是forward到本地URL的路由Filter,生效条件是RequestContext中包含FORWARD_TO_KEY,即URL使用forward映射,并且RequestContext中SEND_FORWARD_FILTER_RAN为false,SEND_FORWARD_FILTER_RAN意为“sendforward是否运行过了”。 在使用serviceId映射的方法路由转发的时候,会使用Ribbon+Hystrix,而哪种路由配置方式是“URL映射”,哪种配置方式又是“serviceId映射”呢?Zuul有一个前置过滤器PreDecorationFilter用于通过RouteLocator路由定位器决定在何时以何种方式路由转发。 RouteLocator是用于通过请求地址匹配到Route路由的,之后PreDecorationFilter再通过Route信息设置RequestContext上下文,决定后续使用哪个RouteFilter做路由转发。 因此,在使用Zuul时,需要理解RouteLocator的作用,以及PreDecorationFilter如何设置RequestContext请求上下文。RouteLocator是 Zuul路由定位器,用于根据请求路径匹配路由,并将匹配到的路由信息保存在Route对象中。 Route对象是org.springframework.cloud.netflix.zuul.filters.Route的实例,用于路由转发。 ZuulProperties.ZuulRoute是用于和zuul配置文件关联,保存相关信息的类。 在Zuul中使用Hystrix是为了处理路由请求中的延迟和故障问题,而RouteLocator和PreDecorationFilter是 Zuul路由转发的关键组件。
- 粉丝: 7
- 资源: 902
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (175601006)51单片机交通信号灯系统设计
- Starter SINAMICS S120驱动第三方直线永磁同步电机系列视频-调试演示.mp4
- (174755032)抽烟、烟雾检测voc数据集
- 基于滑膜控制的差动制动防侧翻稳定性控制,上层通过滑膜控制产生期望的横摆力矩,下层根据对应的paper实现对应的制动力矩分配,实现车辆的防侧翻稳定性控制,通过通过carsim和simulink联合仿真
- 伺服系统基于陷波滤波器双惯量伺服系统机械谐振抑制matlab Simulink仿真 1.模型简介 模型为基于陷波滤波器的双惯量伺服系统机械谐振抑制仿真,采用Matlab R2018a Simul
- (175989002)DDR4 JESD79-4C.pdf
- lanchaoHunanHoutaiQiantai
- (177377030)Python 爬虫.zip
- (177537818)python爬虫基础知识及爬虫实例.zip
- 自动驾驶横纵向耦合控制-复现Apollo横纵向控制 基于动力学误差模型,使用mpc算法,一个控制器同时控制横向和纵向,实现横纵向耦合控制 matlab与simulink联合仿真,纵向控制已经做好油门刹