Spring Boot中@HystrixCommand 注解具有什么功能呢?

欣喜 Spring Cloud 发布时间:2024-02-20 17:15:17 阅读数:12847 1
下文笔者讲述SpringBoot中 @HystrixCommand 注解的功能简介说明,如下所示

@HystrixCommand注解的功能

@HystrixCommand注解是Hystrix开源库中的一个重要注解
   可用分布式系统中进行服务熔断和容错处理

@HystrixCommand注解功能包括:
    熔断保护:
        当依赖的服务出现故障或响应超时时,Hystrix会自动进行熔断,避免请求堆积和系统雪崩。
    容错处理:
      在出现错误或超时的情况下,Hystrix可以提供fallback 机制,
       返回预设的响应或执行备用逻辑,提高系统的可靠性。
    流量控制:
        通过限制请求的并发数和速率,
        Hystrix可以防止系统过载,保护服务的稳定性。
    指标监控:
        Hystrix提供丰富的指标和监控功能
        帮助了解系统的健康状况和性能。

使用@HystrixCommand注解可以在服务调用的方法上进行配置
       如:
       设置熔断策略、fallback 方法、请求超时时间等
        这样可以增强系统的弹性和可靠性,提高服务的容错能力

@HystrixCommand注解的原理

 
@HystrixCommand注解借助Spring AOP实现
   通过对方法进行代理来实现对方法的隔离和监控
     当被@HystrixCommand 注解标记的方法被调用时
       Hystrix 会将该方法封装成一个独立的线程池
      以保证该方法的执行不会影响其他线程的执行
       同时Hystrix 会对该方法的执行进行监控
      如果该方法的执行出现异常或超时
        Hystrix 会触发断路器,防止该方法的调用继续向下传播
       从而避免故障的扩散。

@HystrixCommand注解使用示例

 
步骤一:添加依赖
首先,我们需要在 pom.xml 文件中添加 Hystrix 的依赖:
 
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>

步骤二:添加注解
然后,我们需要在需要进行 Hystrix 隔离的方法上添加 @HystrixCommand 注解:
 
@RestController
public class MyController {
    @Autowired
    private MyService myService;
    @GetMapping("/hello")
    @HystrixCommand(fallbackMethod = "fallbackHello")
    public String hello(@RequestParam String name) {
        return myService.sayHello(name);
    }
    public String fallbackHello(String name) {
        return "Hello, " + name + "! (fallback)";
    }
}

在 hello 方法上添加了 @HystrixCommand 注解,
  并指定了 fallbackMethod 属性,
该属性指定了当该方法执行失败时的回退方法。

在本例中,当 sayHello 方法执行失败时,fallbackHello 方法将被调用。


步骤三:配置属性
  需要在 application.properties 文件中添加 Hystrix 的配置属性:
 
    hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=5000
    指定Hystrix 的默认线程超时时间为 5 秒。
以上成功的使用@HystrixCommand注解来实现Hystrix隔离
    当 sayHello 方法执行失败时
      fallbackHello 方法将被调用
     从而保证了系统的稳定性
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaFramework/SpringCloud/202402/8004.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者