SpringCloud 集成Hystrix之概念篇

1.什么是Hystrix

对于分布式系统的延迟和容错

特点:功能强大、配置简单、持久稳定

 Hystrix 其实就是为了解决在分布式系统中出现的延迟问题、服务间问题而来的一款微服务组件,
 其依赖于 Spring Cloud 框架,通过提供一系列保障措施,
 来保证我们的分布式系统可以安全平稳的运行

2.服务容错与服务降级

容错:当系统在运行时,有错误被激活的情况下,仍能保证不间断提供服务的方法和技术
容错指的是一种方法或技术,而不是一个方法和技术

服务容错:在我们的系统正常运行时,当系统中出现了可以直接影响系统正常运行的错误时,仍能够保证服务不间断的正常运行的一种技术,我们把这种技术称为服务容错

在微服务中,我们通过服务降级来实现服务容错的目的

3.雪崩效应与快速失败

雪崩效应:是一种微服务项目间出现的不良效应。指由一个微服务发生故障后,影响到了其他微服务的正常运行,导致其他微服务不能正常运行

服务快速失败:当微服务发生雪崩现象或故障时,通过某种技术方法将引起雪崩效应的微服务快速处理,其处理的最终目的是保证该微服务不会导致其他后续的微服务出现故障

4.断路器

服务快速失败的实现---断路器-----服务熔断机制

在计算机相关领域中,由于中断上游的故障服务,而保全整体的服务的措施就被成为熔断,中断上游的故障服务采用的就是断路器

5.资源隔离

进程:资源分配和调度的基本单位
线程:操作系统能够进行运算调度的最小单位
进程是线程的容器

每一个Web项目都可以被看作一个进程,常规情况下只有两个线程-----主线程和工作线程。
主线程负责项目启动和一些初始化工作,工作线程主要负责项目中的请求处理与业务逻辑执行

业务接口即服务资源
问题:正常情况若某一业务需要调用五个接口,其中一个非常缓慢,那么其他的只能等待消耗时间,为解决此问题,有两种隔离方式

1.线程池隔离
  为每一个接口提供一个线程池,其中有固定的线程数量
  设置线程数量需谨慎

2。信号量隔离
  为每一个接口分配信号量,有阈值,当服务收到请求后阈值减一,请求处理完毕后阈值加一,当信号量的阈值为0时,则不再接受请求,即该请求会被拒绝处理

5.Hystrix配置项

多数时候我们采用信号量隔离模式

maxConcurrentRequests:当Hystrix的隔离策略被设置为信号量隔离时才会生效,即配置Hystrix执行所允许的最大请求数量,当请求数量超过最大请求数量时,后续请求将被拒绝,默认为10可配置。
若有降级方法,则请求会打到对应的降级方法上,若没有降级方法则会抛出异常

circuitBreaker.requestVolumeThreshold:配置服务熔断的最小请求数量

线城池最大线程数量,默认为10
延迟时间
若超过延迟时间或大于最大线程数量都会抛错且中断线程服务熔断

circuitBreaker.errorThresholdPercentage:该参数是用来配置启用服务熔断的请求出错比例,默认0.5,若请求出错概率超过0.5则服务熔断

6.请求合并

在高并发的场景下,Hystrix会将相同请求合并处理,多个请求合并一次性调用接口,可以降低服务端的压力。多适用于查询操作
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值