首页 理论教育 Java服务端研发知识图谱:Hystrix与Turbine

Java服务端研发知识图谱:Hystrix与Turbine

时间:2023-11-22 理论教育 版权反馈
【摘要】:Hystrix在上一情况中,仅会保证集群不会全部瘫痪,并且能够保证部分的业务承载。本小节会介绍Hystrix的使用方法,包含部分Hystrix的配置及作用,还会介绍HystrixDashboard监控页面以及Turbine聚合监控。

Java服务端研发知识图谱:Hystrix与Turbine

设想一种情况,通过Spring Cloud部署了一个服务集群,前面创建的Provider服务成为了专门负责用户信息处理的服务,它可以对外提供每秒1000次的访问能力。集群内同时存在其他很多业务服务,都会调用Provider服务获取基本的用户信息。突然有一天,由于一次运营宣传活动非常成功,整个集群访问压力突然加大,集群内其他服务对Provider的压力超过了每秒1000次,这时会发生什么?

Provider服务会发生大量的请求积压,而单个请求的响应时间会变慢,其他依赖Provider的服务会等待返回数据,所以请求积压响应也开始变慢。这种情况持续一段时间整个系统可能就会瘫痪,这种效应称为“雪崩”。

Hystrix为了防止以上问题做了很多努力,它采用线程或者信号量隔离、近乎实时的监控业务状况和指标、熔断条件配置、快速失败及默认失败返回等方法使整个集群不至于由于一点故障而全部被拖垮。例如Provider服务出现了业务积压,那么其他调用服务就会出现请求超时的情况,如果消费者服务在请求时配置了Hystrix,Hystrix会监控此请求在一定时间内失败次数是否达到Hystrix设定的阈值,如果达到就会触发Hystrix的熔断机制,从而使服务消费者停止请求Provider服务,这样Provider就有机会在非正常情况下恢复过来,保证一定的业务承载能力,而不至于由它一点而导致整个集群的瘫痪。(www.xing528.com)

当然,整个系统不会由于配置了Hystrix而保证所有请求都正常,所有请求都正常需要服务各节点具备相应的承载能力。Hystrix在上一情况中,仅会保证集群不会全部瘫痪,并且能够保证部分的业务承载。

本小节会介绍Hystrix的使用方法,包含部分Hystrix的配置及作用,还会介绍HystrixDashboard监控页面以及Turbine聚合监控。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈