Spring Cloud Hystrix异常处理方法详解

作者:盲目的拾荒者 时间:2022-05-29 06:20:12 

这篇文章主要介绍了Spring Cloud Hystrix异常处理方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

在调用服务执行HsytrixCommand实现的run()方法抛出异常时,除HystrixBadRequestException之外,其他异常都会认为是Hystrix命令执行失败并触发服务降级处理逻辑.

异常处理

当Hystrix命令因为异常(除了HystrixBadRequestException异常)进入服务降级逻辑之后,往往需要对不同的异常做针对处理,那么就要捕获异常。对于使用@HystrixCommand注解只需要在降级函数中增加Throwable e对象的定义


/**
* HystrixBadRequestException:
* 与由HystrixCommand抛出的所有其他异常不同,这不会触发回退,也不会对失败度量进行计数,因此不会触发断路器。
* @return
*/
@HystrixCommand(fallbackMethod="helloBackMethodFirst",ignoreExceptions=HystrixBadRequestException.class)
public String helloService() {
logger.info("start invoke service");
//URI需要使用虚拟主机名(即服务名称,而不是主机名)
//return restTemplate.getForEntity("http://service-provide/hello", String.class).getBody();
throw new RuntimeException("consumer exception");
}
/**
* 通用降级函数
* @return
*/
@HystrixCommand(fallbackMethod="helloBackMethodSecond")
public String helloBackMethodFirst(Throwable e){
/*
* 一些异常判断
* if(e instanceof CheckEception){
* }
* if(e instanceof IllegalStateException){
* }
*/
//此处可能是另外一个网络请求,所以也可能出现错误
return "error1:"+e.getMessage();
}

来源:https://www.cnblogs.com/niugang0920/p/12194890.html

标签:Spring,Cloud,Hystrix,异常
0
投稿

猜你喜欢

  • java之assert关键字用法案例详解

    2022-07-10 23:01:32
  • Android应用中Back键的监听及处理实例

    2022-09-26 02:00:47
  • c#简单读取文本的实例方法

    2022-02-16 14:51:52
  • 浅谈springioc实例化bean的三个方法

    2022-05-18 08:37:56
  • java多线程之线程同步七种方式代码示例

    2022-04-29 17:55:46
  • C#发送数据到剪贴板及从剪贴板中取数据的方法

    2021-06-06 15:28:38
  • java使用dom4j生成与解析xml文档的方法示例

    2022-06-18 23:41:56
  • SpringSecurity认证流程详解

    2022-06-25 21:44:49
  • 查找算法之二分查找的C++实现

    2022-05-27 07:24:17
  • Android中的webview支持页面中的文件上传实例代码

    2023-12-27 06:44:17
  • Spring源码解析之Configuration

    2021-11-01 06:05:04
  • SpringBoot使用GraphQL开发Web API实现方案示例讲解

    2023-05-17 16:50:22
  • java中如何获取时间戳的方法实例

    2021-06-14 15:29:16
  • 解决Swagger2返回map复杂结构不能解析的问题

    2022-07-15 09:17:04
  • Spring和SpringBoot之间的区别

    2022-09-28 11:47:38
  • Maven依赖作用域和依赖传递的使用

    2022-07-24 19:08:33
  • Android事件冲突解决悬浮窗拖拽处理方案

    2023-12-17 01:51:17
  • Spring Boot 集成Redisson实现分布式锁详细案例

    2023-06-10 05:09:17
  • 浅谈对Java双冒号::的理解

    2023-09-20 02:19:21
  • Java 如何优雅的抛出业务异常

    2023-11-24 04:04:34
  • asp之家 软件编程 m.aspxhome.com