在多个微服务调用过程中如果出现服务的宕机,服务并不能保证服务的100%可用,如果单个服务出现问题,调用这个服务就会出现网络延迟,此时若有大量的网络涌入,会形成任务累计,导致服务瘫痪,甚至导致服务“雪崩”。我们如何解决这个问题呢?
如下图所示:
当service-ribbon调用服务失败的时候怎么处理?
第一 、首先修改pom文件,引入jar
第二、修改ApplicationBoot文件
添加启用断路器注解
第一个是启用断路器, 第二个是为了图形展示。
第三、修改服务的
注意:回调方法必须和当前的方法参数完全一致。不能有差异。否则找不到。
第四 验证
1.启动所有服务
2.输入
http://localhost:8764/hi?name=刘德华
3.浏览器输入:http://localhost:8764/hystrix
注意里面输入的地址 *.stream title:可以随便输入
最后监控界面如下:
我在步骤2中不断刷新调用接口服务,则监控界面显示如下:
显示结果全部命中。圈为灰暗色。
4.如果断开服务则得到的监控结果如下:
命中失败率为100%。
当调用远程服务失败后,则直接将回调函数的结果返回到请求方。
如下图: