首页 > 其他分享 >@EnableHystrix注解与@EnableCircuitBreaker的区别

@EnableHystrix注解与@EnableCircuitBreaker的区别

时间:2024-05-04 10:11:06浏览次数:29  
标签:Hystrix EnableHystrix 应用程序 断路器 EnableCircuitBreaker 注解

在学习服务降级中,发现了@EnableHystrix和@EnableCircuitBreaker的功能类似,研究后特此记录一下。

查看@EnableHystrix的源码可以发现,它引用了@EnableCircuitBreaker,并对它进行了在封装。

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@EnableCircuitBreaker
public @interface EnableHystrix {
}

这两个注解都是激活hystrix的功能,我们根据上面代码得出来结论,只需要在服务启动类加入@EnableHystrix注解即可,无须增加@EnableCircuitBreaker注解,本身@EnableHystrix注解已经涵盖了EnableCircuitBreaker的功能。

 

 

@EnableHystrix和@EnableCircuitBreaker都是Spring Cloud中用于开启Hystrix断路器的注解,但它们之间有一些区别。

@EnableHystrix是一个注解,用于启用Hystrix断路器。它是在Spring Boot应用程序的主类上使用的,它会自动配置Hystrix,并将其添加到应用程序的类路径中。它还允许在应用程序中使用@HystrixCommand注解来标记需要使用Hystrix的方法。

@EnableCircuitBreaker也是一个注解,用于启用断路器。它是在Spring Boot应用程序的主类上使用的,它会自动配置断路器,并将其添加到应用程序的类路径中。它还允许在应用程序中使用@CircuitBreaker注解来标记需要使用断路器的方法。

虽然这两个注解都可以用于启用Hystrix断路器,但@EnableCircuitBreaker还支持其他断路器实现,例如Resilience4j。因此,如果您想使用其他断路器实现,建议使用@EnableCircuitBreaker注解。

 

标签:Hystrix,EnableHystrix,应用程序,断路器,EnableCircuitBreaker,注解
From: https://www.cnblogs.com/zhoading/p/18172032

相关文章

  • Java注解和反射
    元注解:负责注解其他的注解,Java定义了4个标准的meta-annotation类型@Target:用于描述注解的适用范围@Retention:表示需要再什么级别保存该注解信息,用于描述注解的生命周期(source<class<runtime)@Document:该注解江北包含在javadoc中@Inherited:说明子类可以继承父类中的注解自......
  • Spring注解开发
    配置bean在类的上方一个注解:@Component,就表示配置了该类@Component("该类的名称,可以省略不写")publicclassDaoImplimplementsDao{ publicvoidshow(){ }}在xml配置文件中,添加扫描注解的配置#base-package表示要扫描的包<context:component-scanbase-package="......
  • SpringBoot常用注解(部分)
     @Service:注解在类上,表示这是一个业务层bean@Controller:注解在类上,表示这是一个控制层bean@Repository:注解在类上,表示这是一个数据访问层bean@Component:注解在类上,表示通用bean,value不写默认就是类名首字母小写@Autowired:按照类型(Spring容器默认单例模......
  • 获取被注解的类和被注解的方法
    AopUtils.getTargetClass(bean).getMethods()这段代码用于获取一个对象(bean)的所有公共方法(publicmethods)。让我来解释一下这段代码:AopUtils.getTargetClass(bean):这个方法用于获取指定对象的目标类,即被代理的原始类。在SpringAOP中,当一个类被AOP代理后,可能会丢失原始类的一......
  • 【Java注解】自定义注解的简单demo
    需求场景对于特定字段进行脱敏实现步骤首先创建注解@interface1importjava.lang.annotation.ElementType;2importjava.lang.annotation.Retention;3importjava.lang.annotation.RetentionPolicy;4importjava.lang.annotation.Target;56@Retention(Reten......
  • 详细分析Java中的@JsonFormat注解和@DateTimeFormat注解
    @DateTimeFormat(pattern="yyyy-MM-ddHH:mm:ss")@JsonFormat(pattern="yyyy-MM-ddHH:mm:ss",timezone="GMT+8")privateDatecreated_on;在前后端数据交互的过程中,Data类型的数据经常会出现类型映射转换的错误,为了达到业务的目标时间格式,通常会使用@JsonFormat和@DateTi......
  • 浅谈@Transactional 注解的使用
    在SpringBoot的开发项目中,在Controller控制层,我们一般只做入参的校验;在Service服务层,我们把业务逻辑都写在这里,在服务层的方法中,我们会调用其它的服务层接口或者mapper层方法,所以,需要在服务层的方法上,我们需要增加:@Transactional(rollbackFor=Exception.class)添加该注解后......
  • JTCR-枚举、装箱和注解-10
    枚举枚举定义了一个数据类型和该数据类型允许的若干个值,这些值为命名常量。一个枚举实例的值必须是定义的值。Java中,枚举是类类型,可以有构造器、方法和实例变量,甚至实现接口。但不能使用new实例化。enumName{value1,value2,...}//定义Namen=Name.value1;//......
  • 8.集合、泛型、枚举、注解、反射
    第八章【集合、泛型、枚举、注解、反射】一、集合1、概述集合是JavaAPI中提供的一种容器工具,可以用来存储多个数据。集合框架中主要有三个要素组成:接口实现类数据结构集合中不可以存放基本类型集合按照其存储结构可以分为两大类:java.util.Collection 单值存放......
  • 实现自定义注解校验方法参数(AOP+自定义注解+自定义异常+全局异常捕获)
    一、实现目的在编写接口的时候,通常会先对参数进行一次校验,这样业务逻辑代码就略显冗杂,如果可以把校验参数的代码进行统一管理,在方法或者属性上直接添加注解就可以实现参数的校验,就可以提升代码编写的效率。二、实现原理通过自定义注解,注解在入参VO的属性上,设定需要满足的条件,然......