概述
分布式结构所面临的问题
在分布式系统结构中往往会有许多的依赖关系,而有些时候某个依赖会有可能出现一些问题,像响应超时等,这种情况下,不同的服务去不断地调用这个依赖系统资源就会被占用的越来越多,进而会引起系统崩溃,也就是所谓的"雪崩效应"。
对于高流量的应用来说,单一的后端依赖可能会导致所有服务器上的所有资源都在几秒钟内饱和。比失败更糟糕的是,这些应用程序还可能导致服务之间的延迟增加,备份队列,线程和其他系统资源紧张,导致整个系统发生更多的级联故障。这些都表示需要对故障和延迟进行隔离和管理,以便单个依赖关系的失败,不能取消整个应用程序或系统。
所以,通常当你发现一个模块下的某个实例失败后,这时候这个模块依然还会接收流量,然后这个有问题的模块还调用了其他的模块,这样就会发生级联故障,或者叫雪崩。
Hystrix简介
而Hystrix是一个用于处理分布式系统的延迟和容错的开源库,在分布式系统里,许多依赖不可避免的会调用失败,比如超时、异常等,Hystrix能够保证在一个依赖出问题的情况下,不会导致整体服务失败,避免级联故障,以提高分布式系统的弹性。"断路器”本身是-种开关装置, 当某个服务单元发生故障之后,通过断路器的故障监控(类似熔断保险丝),向调用方返回一个符合预期的、可处理的备选响应(FallBack) ,而不是长时间的等待或者抛出调用方无法处理的异常,这样就保证了服务调用方的线程不会被长时间、不必要地占用,从而避免了故障在分布式系统中的蔓延,乃至雪崩。
Hystrix作用
Hystrix可以进行服务降级,服务熔断,服务限流,接近实时的监控.
1.服务降级
当服务器出现问题时,不让客户端等待并立刻返回一个友好提示,例如服务器忙,请稍候再试.(fallback)
哪些情况会触发降级
1.程序运行异常
2.超时
3.服务熔断触发服务降级
4.线程池/信号量打满也会导致服务降级
2.服务熔断
类比保险丝达到最大服务访问后,直接拒绝访问,拉闸限电,然后调用服务降级的方法并返回友好提示,作用类似于保险丝,一般来说出现问题会进行 服务的降级->进而熔断->恢复调用链路
3.服务限流
一般用于秒杀高并发等操作,严禁一窝蜂的过来拥挤,大家排队,一秒钟N个,有序进行,对服务进行限流
4.接近实时的监控
除了隔离依赖服务的调用以外, Hystrix还提供 了准实时的调用监控(Hystrix Dashboard) , Hystrix会持续地记录所有通过Hystrix发起的请求的执行信息,以统计报表和图形的形式展示给用户,包括每秒执行多少请求多少成功,多少失败等。Netflix通过hystrix-metrics-event-stream项目实现了对以上指标的监控。Spring Cloud也提供了Hystrix Dashboard的整合,对监控内容转化成可视化界面。
最后
以上就是结实小甜瓜为你收集整理的Hystryx简介分布式结构所面临的问题Hystrix简介的全部内容,希望文章能够帮你解决Hystryx简介分布式结构所面临的问题Hystrix简介所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复