Spring Cloud Hystrix

82 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第12天,点击查看活动详情

Hystrix

1)概念

服务熔断降级

保护机制--保险丝

设计系统的保护策略

调用预先设计好的错误页面

image-20221018145706052

2)服务降级

image-20221018145839513

image-20221018150351273

在启动类上加@EnableCircuitBreaker

image-20221018154159546

也有整个controller类默认的:

image-20221018154310738

image-20221018154324715

这个是默认你超过1s没有返回,就会返回熔断页面的

我们来测试一下,我们在调用的方法里增加睡眠机制:

image-20221018154533773

结果是返回熔断页

image-20221018154804562

实际情况下,可能因为网络抖动会影响返回时间,我们可以修改超时时间:(一般3s)

image-20221018155037125

image-20221018155140851

这里面的property都是可以灵活配置的

3)OpenFeign使用Hystrix实现降级

OpenFeign和Hystrix是默认集成的

image-20221018160817013

原来的consumer:

image-20221018160642609

然后在comsumer的启动类上加@EnableCircuitBreaker

provider的user-api里的:

image-20221018160855699

这就配置完了,是不是很简单?

这是还要注意一个部署前后关系的问题

consumer是有user-api的包的,要扫描上面刚写的那个@component

image-20221018161300229

测试:

image-20221018161404840

4)Hystrix熔断机制

自我关闭,自我恢复

image-20221018162456842

image-20221018162411820

用脚都能想到是在刚才的HystrixCommandProperties里的配置

image-20221018162758390

image-20221018162811127

image-20221018163124304

还有一些根据线程池或者信号量的隔离策略,也是通过HystrixCommandProperties的参数修改

5)Hystrix Dashboard

监控

image-20221018164803729

image-20221018164830800

就会监控到一些信息,但是还是不是很直观!

Hystrix DashBorad

image-20221018165058370

image-20221018165136935

image-20221018165145782

image-20221018165250502

相当于不断调用上面的东西并且,将上面的json可视化

看到这里,就可以跳过这一节了

网页启动会有问题,需要根据开发者工具的报错修改文件,js版本不一致的问题

比如下面的一种:

image-20221018170654023

image-20221018170822076

正常页:

image-20221018170839002

集群监控:

image-20221018171058548

image-20221018171320897

这里访问可以看到eureka里的服务的监控

image-20221018171418786

再放到上面那个可视化界面里就行

6)SpringCloudGateway集成Hystrix

在我们上面的gateway中加

image-20221018171606163

image-20221018180700775

image-20221018181003510

在我们之前的集群监控里面加上gateway的监控,也能看到:

image-20221018181243364

image-20221018181732321