美文网首页
SpringZuul熔断机制分析

SpringZuul熔断机制分析

作者: _小马 | 来源:发表于2018-11-15 21:37 被阅读0次

关于配置针对每个服务进行熔断时间(全家桶版本为Edgware.RELEASE)

1.从SpringCloud Zuul的源代码角度进行分析:

SpringCloud在 HystrixCommandProperties 的构造方法加载配置文件的时候,在getProperty 方法处会增加两个配置属性到 ChainBuilder 中,default和配置文件中的服务名称 ( 如:app-user-service 注册到注册中心中的name )。如果在网关配置文件中配置default,在build方法中,会将两个配置属性增加到List中,并且会进行排序,排序之后default就会排在第二位。所以在熔断监听的时候,会出现去获取 app-user-service 的配置,默认为2000ms。

2.网关每次转发请求给服务的时候,执行底层发送之后会返回一个Feture对象,当网关的转发请求执行时间大于2000ms,则会为Feture设置一个error。Feture对象会调用isDone方法进行阻塞,当转发请求完成后,Done则会完成,但是这时候,会先判断Feture是否有Error,如有,则网关做转发失败处理,因为熔断时间已经到了。

3.关于网关调用服务执行流程,网关会在HystrixCommand类中的queue方法执行调用。第一行代码,则是将观察者设置为阻塞模式,这样网关在转发的时候,不是异步,而是等待网关执行完成才会执行后面的代码。 接着上一个问题,如果Spring运行时,读取的是超时是 2000ms,但是在网关转发调用服务时执行的时间为5000ms,其实在2000ms的时候,就应该关闭请求调用,返回Feture,但是却一直阻塞到5000ms直到请求返回,才返回Feture。不友好!!!由于调用已经超过熔断的2000ms,异步Listener会设置一个error,在getValue时,线判断如果 error != null,就会直接将异常返回并抛出。

4.因为请求属于阻塞形式的,当网关熔断后,并没有真正的熔断请求。所以此处可以修改成NIO形式,或者异步请求的形式。当网关转发超时熔断之后,立马将当前客户端的请求返回给客户端。

相关文章

  • SpringZuul熔断机制分析

    关于配置针对每个服务进行熔断时间(全家桶版本为Edgware.RELEASE) 1.从SpringCloud Zu...

  • 熔断

    场景分析 当一个服务出现异常,就会出现请求堆积从而导致整个服务不可用的问题。 引入熔断机制 熔断机制指当下游服务因...

  • 近期新闻关键词名解

    熔断机制 熔断机制(Circuit Breaker),也叫自动停盘机制,是指当股指波幅达到规定的熔断点时,交易所为...

  • 2019-05-15(二零二)

    离别 总是让人伤感 也许 离开 是因为 心灰意冷了吧 香帅的北大金融学 夭折的熔断机制。 什么熔断机制? 熔断机制...

  • 熔断机制

    熔断机制(Circuit Breaker),也叫自动停盘机制,是指当股指波幅达到规定的熔断点时,交易所为控制风险采...

  • 熔断机制

    风险无处不在 我们都需要对风险承受能力的界限做出自动弹窗,如果不理性止损,赌徒心理导致的后果可大可小,容易失了分寸。

  • 熔断机制

    生活中免不了会有情绪低落的时候,或者生活、工作陷入低谷的时候,为了应对这些低落和低谷,你可以给自己设立合适的熔断机...

  • 美股触发熔断机制!!!

    2012年后,美股将股指熔断机制改为7%,13%,20%的三档下跌熔断。所谓熔断机制,指的是基于参考价格的一系列价...

  • 想通关「限流」?只要这一篇

    本文内容转载于微信公众号:跨界架构师 在上一篇中我们聊到了「熔断」(明哲保身-熔断机制),有熔断机制的系统,它对可...

  • 比特币期货的熔断机制是什么

    熔断机制(Circuit Breaker),也叫自动停盘机制,是指当股指波幅达到规定的熔断点时,交易所为控制风险采...

网友评论

      本文标题:SpringZuul熔断机制分析

      本文链接:https://www.haomeiwen.com/subject/zuuufqtx.html