hystrix熔断和降级的区别_Hystrix学习

学习主题:Hystrix

  1. 解决灾难性雪崩效应-服务熔断-服务熔断处理
    1. 熔断参数circuitBreaker.enabled的作用是什么?
    2. 熔断参数circuitBreaker.requestVolumeThreshold的作用是什么?
    3. 熔断参数circuitBreaker.sleepWindowInMiliseconds的作用是什么?
    4. 熔断参数circuitBreaker.errorThresholdPercentage的作用是什么?
    5. 熔断参数circuitBreaker.forceOpen的作用是什么?
    6. 熔断参数circuitBreaker.forceClosed的作用是什么?

f085c521e26261235acac95a295c2dcd.png
  1. 解决灾难性雪崩效应-隔离机制-线程池隔离-创建项目
    1. 什么是线程池隔离?
    2. 线程池隔离的优点是什么?
    3. 线程池隔离的缺点是什么?

将多个服务接口同时放到一个线程池中 ,当一个服务并发量急剧增加时 ,线程池会瘫痪,另一个线程也会完蛋

预测哪个服务接口线程并发量大 ,将并发量大的服务接口线程单独拉出来放到另一个线程池中 , 减少服务器的压力,同时这个服务出错时也不会影响其他服务

d1f63f8980a7197d096f7f83c5cdc671.png

解决灾难性雪崩效应-隔离机制-线程池隔离-线程池隔离处理

    1. @HystrixCommand注解中的threadPoolProperties属性的作用是什么?
    2. @HystrixProperty注解的作用是什么?
    3. 线程池隔离参数groupKey的作用是什么?
    4. 线程池隔离参数commandKey的作用是什么?
    5. 线程池隔离参数threadPoolkey的作用是什么?
    6. 线程池隔离参数coreSize的作用是什么?
    7. 线程池隔离参数maxQueueSize的作用是什么?
    8. 线程池隔离参数queueSizeRejectionThreshold的作用是什么?
    9. 线程池隔离参数keepAliveTimeMinutes的作用是什么?

a95a057406800969b1944201a4b8d70c.png
  1. 解决灾难性雪崩效应-隔离机制-信号量隔离-创建项目
    1. 什么是信号量隔离?

当Consumer发送大量请求到provider时 ,会访问信号量池

  1. 解决灾难性雪崩效应-隔离机制-信号量隔离-信号量隔离处理
    1. 信号量隔离参数execution.isolation.strategy的作用是什么?
    2. 信号量隔离参数execution.isolation.thread.timeoutInMiliseconds的作用是什么?
    3. 信号量隔离参数execution.isolation.thread.interruptOnTimeout的作用是什么?
    4. 信号量隔离参数execution.isolation.semaphore.maxConcurrentRequests的作用是什么?
    5. 信号量隔离参数fallback.isolation.semaphore.maxConcurrentRequests的作用是什么?

9fbc5b496dd889f21424602f72e33399.png
  1. 线程池隔离和信号量隔离的区别
    1. 线程池隔离与信号量隔离有什么区别?
    2. 什么情况下使用线程池隔离?
    3. 什么情况下使用信号量隔离?

fa8762dca6f946dc342b0d27559e6beb.png

3604ea277a987f523bf55b4c35995f44.png

93bc98ab53fce5c611d970b8c678a2f2.png
  1. Feign的服务降级处理-创建项目
  2. Feign的服务降级处理-服务降级处理
    1. 修改业务层代码,在Feign中配置服务降级。

修改全局配置文件

#Feign默认不开启Hystrix,为false

feign:

hystrix:

enabled: true

接口中指定服务项目名,托底数据类

@FeignClient(name="Ego-Provider-Provider",fallback=ConsumerServiceImplRallback.class)//使用@FeignClient注解 name属性指定服务提供者的应用名

  1. 启动服务测试效果。

aeeaff38129c5ecf9efe2f9104c74843.png
  1. 服务降级后的异常记录
    1. 为什么要记录降级后的异常信息。

在使用Feign的开发过程中 ,出现了托底数据 ,

可以通过这种方式获取异常的相关信息 ,帮助我们解决异常

  1. 在项目中开启可视化的数据监控Hystrix-dashboard
    1. 什么是Hystrix-dashboard?
    2. @EnableHystrix注解的作用是什么?
    3. @EnableHystrixDashboard注解的作用是什么?

Hystrix-dashboard 是一款针对 Hystrix 进行实时监控的工具,通过 Hystrix Dashboard 我们可以在直观地看到各 Hystrix Command 的请求响应时间, 请求成功率等数据。

@EnableHystrix 开启数据监控

@EnableHystrixDashboard 开启图形化界面

  1. 搭建Hystrix-dashboard数据监控中心
    1. 创建数据监控中心服务。
    2. 修改POM文件,添加actuator启动器,添加hystrix启动器、hystrix-dashboard启动器。
    3. 需改启动类添加开启Hystrix与HystrixDashboard。
    4. 按照启动顺序启动服务。
    5. 访问HystrixDashboard服务,查看数据。

server:

port: 9999

spring:

application:

name: Eureka-Consumer-Ribbon-DashBoard-view

#可有可无,添加Eureka的目的是方便管理服务

eureka:

client:

serviceUrl:

defaultZone: http://admin:admin@eureka1:8761/eureka/,http://admin:admin@eureka2:8761/eureka/

b4b761aef8004ad462837233b562ae29.png
  1. 创建Turbine聚合服务器
    1. Turbine的作用是什么?
    2. @EnableTurbine注解的作用是什么?

Turbine对监控服务做了聚合 ,但是仍需要依赖Dashboard

@EnableTurbine:开启聚合服务

  1. 使用Turbine对多个服务进行监控
  2. Turbine默认监听端口是多少?
  3. @EnableHystrixDashboard注解的作用是什么?

8080

@EnableHystrixDashboard:开启数据监控的图形化界面

  1. 使用Turbine监控集群
    1. 通过Turbine查看集群监

ea2ddc58781299dc66bd15485f3bc14b.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值