Hystrix简介及简单使用

Hystrix简介

hystrix是一个容错组件,实现了超时机制和断路器模式。实现了熔断和降级

  1. 降级
    服务降级一般是指在服务器压力剧增的时候,根据实际业务使用情况以及流量,对一些服务和页面有策略的不处理或者用一种简单的方式进行处理,从而释放服务器资源的资源以保证核心业务的正常高效运行。

  2. 熔断
    应对雪崩效应的链路自我保护机制。可看作降级的特殊情况
    下游服务挂掉后,防止自身被拖垮

Hystrix使用

使用
  1. 添加依赖
<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>
  1. 启用hystrix
    修改application.yaml
feign:
  hystrix:
    enabled: true # 开启hystrix
  1. 增加备份
    增加备份实现
    在这里插入图片描述
  2. 增加回调配置
    在触发熔断的时候就会使用RentCarFeignHystrix
    在这里插入图片描述
  3. 调用显示
    在这里插入图片描述

常用配置

hystrix :    #hystrix 的全局控制
      command :
            default :
            #default 是全局控制,也可以换成单个方法控制,把 default 换成方法名即可
                   fallback :
                            isolation :
                                     semaphore :
                                            maxConcurrentRequests : 1000 # 信号量隔离级别最大并发数
                  circuitBreaker :
                           enabled : true   # 开启断路器
                           requestVolumeThreshold : 3  # 失败次数(阀值)
                           sleepWindowInMilliseconds : 20000  # 窗口时间
                           errorThresholdPercentage : 60    # 失败率
                 execution :
                           isolation :
                                      Strategy : thread # 隔离方式 thread 线程隔离集合和 SEMAPHORE 信号量隔离 级别
                                       thread :
                                              timeoutInMilliseconds : 3000 # 调用超时时长
  1. 线程隔离方式
#隔离方式 两种隔离方式 thread 线程池 按照 group(10 个线程)划分服务提供者,用户请求的线程 和做远程的线程不一样
# 好处 当 B 服务调用失败了 或者请求 B 服务的量太大了 不会对 C 服务造成影响 用户访问比较大的情 况下使用比较好 异步的方式
# 缺点 线程间切换开销大,对机器性能影响
# 应用场景 调用第三方服务 并发量大的情况下
# SEMAPHORE 信号量隔离 每次请进来 有一个原子计数器 做请求次数的++ 当请求完成以后 --
# 好处 对 cpu 开销小
# 缺点 并发请求不易太多 当请求过多 就会拒绝请求 做一个保护机制
# 场景 使用内部调用 ,并发小的情况下
# 源码入门 HystrixCommand AbstractCommand
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
熔断机制是一种容错机制,用于防止分布式系统中的故障扩散。在分布式系统中,如果某个服务或组件出现问题,将会导致整个系统出现瓶颈或者崩溃。为了解决这个问题,熔断机制可以在发现某个服务故障时,快速断开与该服务的连接,避免故障扩散。 Hystrix是Netflix开源的一款熔断框架,主要用于分布式系统中的容错处理。使用Hystrix可以将服务之间的依赖关系抽象为一条线路,当线路中的某个服务出现问题时,Hystrix会自动触发熔断机制,快速切断与该服务的连接,并启用降级策略,保证整个系统的可用性。 下面简单介绍Hystrix使用: 1.引入Hystrix依赖 在pom.xml文件中添加以下依赖: ``` <dependency> <groupId>com.netflix.hystrix</groupId> <artifactId>hystrix-core</artifactId> <version>1.5.18</version> </dependency> ``` 2.创建HystrixCommand 通过继承HystrixCommand类,可以创建一个Hystrix命令,该命令用于执行远程服务,并处理服务超时或者异常等情况。 ``` public class RemoteServiceCommand extends HystrixCommand<String> { private final String url; public RemoteServiceCommand(String url) { super(HystrixCommandGroupKey.Factory.asKey("RemoteServiceGroup")); this.url = url; } @Override protected String run() throws Exception { //执行远程服务调用 return HttpUtils.get(url); } @Override protected String getFallback() { //降级处理 return "Fallback"; } } ``` 在上面的代码中,我们通过继承HystrixCommand类,创建了一个RemoteServiceCommand命令,该命令用于执行远程服务调用。当服务调用失败时,Hystrix会自动触发降级处理,使用getFallback()方法返回一个默认结果。 3.执行HystrixCommand 通过以下方式执行HystrixCommand命令: ``` RemoteServiceCommand command = new RemoteServiceCommand(url); String result = command.execute(); ``` 在上面的代码中,我们创建了一个RemoteServiceCommand命令,并通过execute()方法执行该命令。当服务调用失败时,Hystrix会自动触发降级处理,返回一个默认结果。 总结: Hystrix是一款强大的熔断框架,可以用于分布式系统中的容错处理。使用Hystrix可以将服务之间的依赖关系抽象为一条线路,当线路中的某个服务出现问题时,Hystrix会自动触发熔断机制,保证整个系统的可用性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值