我是靠谱客的博主 虚拟音响,这篇文章主要介绍springcloud 利用hystrix服务降级出现问题,现在分享给大家,希望可以做个参考。

复制代码
1
com.netflix.hystrix.contrib.javanica.exception.FallbackDefinitionException: fallback method wasn't found: payment_Global_FallbackMethod([])

原因:

   配置全局兜底方法时,不需要参数。

复制代码
1
2
3
4
5
6
public String payment_Global_FallbackMethod(){ return "全局兜底方法(*^▽^*)"; }

服务降级方法:

复制代码
1
2
3
4
5
6
7
8
@HystrixCommand public String paymentInfo_TimeOut(@PathVariable("id") Integer id){ // int age=10/0; return orderHyxtrixService.paymentInfo_TimeOut(id); }

我的原因是

  

复制代码
1
2
3
4
5
public String payment_Global_FallbackMethod(@PathVariable("id") Integer id){ return "全局兜底方法(*^▽^*)"; }

知识点:

 

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
/** * 消费者端服务降级 * 解决问题 * 服务端超时 * 消费者出现问题 * 准备工作: * 在yml配置文件中添加 * feifn: * hyxtrix: * enable: true * * 在主启动类上添加 * @EnableHyxtrix * * 解决方法: * 通过@HystrixCommand 在出现异常中方法中添加,@HystrixCommand 指定当前方法出现问题时,将跳转兜底方法 * @HystrixCommand使用 * @HystrixCommand(fallbackMethod = "paymentInfo_TimeOutHandler", * commandProperties = {@HystrixProperty(name="execution.isolation.thread.timeoutInMilliseconds",value="3000")}) * fallbackMethod:兜底方法名 * * * 知识点二: * 问题:服务降级每个方法都添加hyxtrix兜底的方法,造成方法的膨胀 * * 解决: * //@DefaultProperties(defaultFallback ="")指定全局兜底方法,与注解@HystrixCommand配套使用,如果注解@HystrixCommand定义 * fallback方法,走自己定义的fallback方法,反之走@DefaultProperties中指定的方法

最后

以上就是虚拟音响最近收集整理的关于springcloud 利用hystrix服务降级出现问题的全部内容,更多相关springcloud内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(63)

评论列表共有 0 条评论

立即
投稿
返回
顶部