尚硅谷springcloud2020day8(p54-p57)

今天是2020-12-10。
一。hystrix使用。
服务端的流程:
1.pom文件导入spring-cloud-starter-netflix-hystrix
2.启动类添加@EnableHystrix
3.需要监控的方法添加 @HystrixCommand(fallbackMethod = “getPaymentByIdFallBack”,commandProperties = {
@HystrixProperty(name = “execution.isolation.thread.timeoutInMilliseconds”,value = “3000”)
}),配置备选方法以及超时时间为三秒
4.创建备选方法,注意,备选方法的方法声明要与监控方法完全一致
5.调用查看结果,降级成功
客户端流程,使用feign集成hystrix以后:
1.pom文件导入spring-cloud-starter-netflix-hystrix
2.application.yml中:
feign:
hystrix:
enabled: true,开启熔断机制
3.启动类添加@EnableHystrix
4.需要监控的方法添加 @HystrixCommand(fallbackMethod = “getPaymentByIdFallBack”,commandProperties = {
@HystrixProperty(name = “execution.isolation.thread.timeoutInMilliseconds”,value = “xxx”)
}),配置备选方法以及超时时间为xxx秒
5.注意,因为配置了
feign:
client:
config:
default:
connectTimeOut: 10000
readTimeOut: 10000,这里readTimeOut意为ribbon处理请求的超时时间,注意:如果配置连接当前实例的最大重试次数A为两次、当前实例失效时尝试切换其他实例的最大重试次数B为2次,那么hystrix的超时时间要大于readtimeout+Areadtimeout+B(A*readtimeout+readtimeout)。
这里就直接附上使用feign时ribbon的配置:
ribbon:
MaxAutoRetries: 1 #最大重试次数,当Eureka中可以找到服务,但是服务连不上时将会重试
MaxAutoRetriesNextServer: 1 #切换实例的重试次数
OkToRetryOnAllOperations: true # 对所有的操作请求都进行重试,如果是get则可以,如果是post,put等操作没有实现幂等的情况下是很危险的
二。默认的备选方法
如果配置了@HystrixCommand的被熔断器监控的方法自己没有配置指定的备选方法,那么就会启用默认的备选方法。也就是说,除了核心业务去指定专门的备选方法,不重要的方法就可以使用默认的降级方法
全局降级方法,在@DefaultProperties(defaultFallback = “defaultFallbackMethod”)
这里注意:
1.局部熔断方法:要和被熔断的控制器方法返回值及参数列表一致
2.全局熔断方法:返回值类型为object,参数列表必须为空
三。feign集成hystrix时的备选方法类
如果我们的方法过多,那么为每个方法都指定降级方法是不现实的,而且代码也会混在一起,所以我们直接定义一个类实现feign接口,在实现的方法中配置备选逻辑,从而实现解耦.。
实现步骤:
1.定义类PaymentFeignServiceImpl实现PaymentFeignService,添加注解@component,在实现的方法中编写备用逻辑
2.PaymentFeignService的@FeignClient(value = “CLOUD-PAYMENT-SERVICE”,fallback = PaymentFeignServiceImpl.class),如上填写,即可实现效果。
不忘学好知识的初心,继续加油

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值