Hystrix的使用说明

什么是Hystrix

Hystrix是一个用于处理分布式系统的延迟和容错的开源库,在分布式系统里,不可避免的会产生调用失败,比如调用超时,异常等,Hystrix能够保证在一个以来出问题的情况下,整个服务不会失败,避免级联故障以提高分布式系统的弹性

**断路器:**本身是一种开关装置,当某个服务单元发生故障后,通过断路器的故障监控,像被调用方返回一个可预期的,可处理的备选选项,而不是长时间等待或者处理无法处理的异常这样就保证了服务不会因为一点问题而出现了服务雪崩

主要能做什么

服务降级 fallback
服务熔断 break
接近实时的监控
服务限流等 flowlimit

新建一个服务,并添加依赖
在这里插入图片描述
编写启动类
在这里插入图片描述
编写service层,一个成功的方法,一个失败的方法
在这里插入图片描述

编写controller层
在这里插入图片描述
访问测试一下有没有错误:
在这里插入图片描述
在这里插入图片描述
用jmeter进行压力测试。20000个并发,发现ok原本是瞬间成功的变成了需要加载了
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
使用feign调用,新建order80
在这里插入图片描述
创建controller并调用
在这里插入图片描述
启动并调用测试功能
在这里插入图片描述
启动jmeter测试,发现也开始转圈了
在这里插入图片描述
解决方案:
服务降级:

1 超时导致
修改等待时间,3秒改为5秒
在这里插入图片描述
编写一个响应时间过长的备用方法@HystrixCommand
在这里插入图片描述

设置属性:这个线程是3秒钟
在这里插入图片描述
主启动类加上
在这里插入图片描述
能看到已经实现了服务降级,用到了备用的方法
在这里插入图片描述
原先的办法已经超时了
在这里插入图片描述
超时试过了试一试报错:
也是直接调用的备用的方法
在这里插入图片描述

修改一下配置
在这里插入图片描述

启动访问在这里插入图片描述
修改调用端80的yml
在这里插入图片描述
在controller层也添加一个备用的容错方法
在这里插入图片描述
在这里插入图片描述
启动运行发现超过1.5秒,也进入了容错的方法在这里插入图片描述
编写一个错误测试
在这里插入图片描述
启动运行:也是进入了容错方法
在这里插入图片描述
编写一个全局的fallback
在类头上添加@DefultProperties并指定方法
@DefaultProperties()
再添加对应的方法
在这里插入图片描述
取消指定的容错方法,编写标签
在这里插入图片描述
添加这个标签就是表明这个方法需要服务降级,没有特别指明就是默认的配置的全局降级的方法
启动运行测试
在这里插入图片描述
测试客服端去调用服务端,然后服务端宕机或者关闭了
添加容错方法的类
在这里插入图片描述
新建该类并继承PaymentHystrixService,当出错时就会找到容错类的相关方法:
在这里插入图片描述
启动服务:
在这里插入图片描述
关闭端口8001的服务
在这里插入图片描述
再次访问,能看到虽然服务是断开了,但是有容错方法,所以已经访问到容错的方法了
在这里插入图片描述
2 服务熔断
应该雪崩效应的一种微服务链路保护机制,当扇出链路不可用或者响应时间过长时,会进行服务的降级,进而熔断该节点的调用,快速返回错误的响应信息,当检测该节点微服务调用响应正常时,恢复调用链路。
修改
在这里插入图片描述
修改PaymentService
在这里插入图片描述
在controller层调用
在这里插入图片描述
然后启动运行测试
先测试正确的:
在这里插入图片描述
再测试一个错误的:
在这里插入图片描述

然后狂点负数错误的,启动断路器
在狂点之后启动了断路器,再输入正确的id就是还是错误的,等一段时间再访问
在这里插入图片描述
等了一段时间后访问,发现又能成功了
在这里插入图片描述

服务监控:dashboard:监控界面的图形化展示:
新建一个服务。9001,添加pom:
在这里插入图片描述
编写主启动类,并编写注解:
在这里插入图片描述
忘了说了,想要监控都必须依赖以下注解(监控和被监控都需要):
在这里插入图片描述
启动9001:看到了豪猪哥就监控程序搭建成功了
在这里插入图片描述
修改8001:
并添加方框里的配置。不然会报404,查了网上说是springcloud升级留下的坑
在这里插入图片描述
启动8001进行测试:
在这里插入图片描述
测试:狂点几次在这里插入图片描述
左上角的圈很大28,Cricuit是绿色的
在这里插入图片描述
不点了过去左上角的圈就慢慢消失了
在这里插入图片描述
点错误的访问,63%超过了我当初设置熔断的60%,熔断器启动,并且Ciruit是红色的了
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值