https://www.bilibili.com/video/BV18E411x7eT?p=47
47----64
Hystrix 作用
Hystrix 是处理分布式系统的 延迟 和 容错 的开源库 ,分布式系统中很多调用会 超时,异常等,Hystrix 可以让一个依赖出问题的情况下,不会导致整体失败,避免级联故障,提高分布式系统的弹性。
“断路器”是一种类似保险丝的开关装置,当出现问题,向调用方返回一个符合预期的可处理的备选相应(FallBack) ,而不是长时间等待或者抛出异常,这样就保证了调用方线程不会被长时间占用,避免了故障在分布式系统中蔓延,乃至雪崩。
hystrix 官网
https://github.com/Netflix/Hystrix/wiki/How-To-Use
Hystrix进入停止更新状态, 官方推荐使用resilience4j替换Hystrix,周阳推荐使用alibaba的sentinel 替换 Hystrix
Hystrix
https://github.com/Netflix/Hystrix/wiki
hystrix 作用
hystrix 作用 1. 服务降级 fallback (等于if eles 当正常不可用,要有一个兜底的方案 ,比如服务器忙,提示“请稍后再试”的友好提示)
hystrix 作用 2. 服务熔断 break 熔断分三步 1 服务降级 2 服务熔断 3 回复调用链路 (类似保险丝,当服务到达最大访问限制后,拒绝访问,拉闸限电,然后调用服务降级方法返回友好提示)
hystrix 作用 3 服务限流 flowlimit (针对秒杀等高并发操作,大家排队,严禁一窝蜂拥挤,有序进行处理 )
触发服务降级的原因: 程序异常、超时、服务熔断出发服务降级、
http://localhost:7001/
http://localhost:8001/payment/hystrix/ok/2
http://localhost:8001/payment/hystrix/timeout/2
JMETER 并发测试工具
https://www.cnblogs.com/TankXiao/p/4045439.html
下载jmeter 解压到目录**下面
C:\developer_tools\apache-jmeter-5.2.1\bin
执行jmeter.bat 开启jmeter工具
没有压力测试的时候,运行
http://localhost:8001/payment/hystrix/ok/2 秒回
有压力测试的时候,运行
http://localhost:8001/payment/hystrix/ok/2 要等待一段时间
http://localhost:7001/ ----可以访问
http://localhost:8001/payment/hystrix/ok/2 ----可以访问
http://localhost:8001/payment/hystrix/timeout/2 -----可以访问(等三秒)
http://localhost/consumer/payment/hystrix/ok/2 ----可以访问
http://localhost/consumer/payment/hystrix/timout/2 -----不可以访问
当开启jmeter 的时候,访问下面的地址,有时可以访问,有时不可以访问
,原因是资源被jmeter访问的占用了
http://localhost/consumer/payment/hystrix/ok/2
http://localhost:8001/payment/hystrix/ok/2 -------访问正常
http://localhost:8001/payment/hystrix/timeout/2 ----访问跳转到兜底的方法 paymentInfo_TimeOutHandler
http://localhost:7001/
http://localhost:8001/payment/hystrix/ok/2
http://localhost:8001/payment/hystrix/timeout/2
http://localhost/consumer/payment/hystrix/ok/2
http://localhost/consumer/payment/hystrix/timeout/2
DefaultProperties全局降级方法
以上所有,异常处理方法与业务处理方法混用,比较乱,在方法上各自配置超时等参数,也很乱。
- 在controller 方法中设置全局降级方法
服务熔断
马丁富勒 服务熔断理论提出者
https://martinfowler.com/bliki/CircuitBreaker.html
理论
Hystrix Dashboard 服务监控
localhost:9001/hystrix