Spring Cloud Hystrix 熔断、降级、限流的区别

之前对三者的概念模模糊糊,这篇文章用通俗的语言来加深一下印象。

降级:针对降级的处理,可以给出友好的提示,或重定向至页面。可以简单理解为:降低服务质量的等级,原本的计划是要将数据写到数据库内,但是服务响应失败,可以通过降级,先把消息存到mq里面,或给出页面,点击重试按钮。

限流:针对限流的处理,可以直接抛出异常,让用户再次请求重试。可以简单理解为:限制某一服务的流量,假如火锅店只有20桌,并且座位上都有人,那其他的用户只能在外边等着,如果不对用户进行处理,都进入到火锅店,也会影响其他用户的服务质量。

熔断:降级次数达到阈值之后,将开关关闭,直接抛出异常。

如何实现呢?

通俗一点讲就是try catch,没有异常就正常返回,有异常就处理,具体是熔断、降级还是限流,看具体的实现策略

使用场景

降级和熔断多发生于消费端(吃火锅举例子:服务员告诉你人满了,要不你搬个小马扎去外边等着,要不就是人太多了,你回家了,不吃了,并且今天不来了)

限流多发生于服务端(还是吃火锅举例子:肯定是服务员让你等着,因为座位不够了嘛)

你可能感兴趣的:(spring,cloud)