hystrix 单独使用_Hystrix学习

学习主题:Hystrix

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

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

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

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

b9824b1d88c2949910b800a778bb5d08.png

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

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

4e3e9ddb644e74d9f1fd1435b57cae28.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的作用是什么?

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

a43f8ab39db7674dd76802435d192067.png

dbe21d8ea36f549a822d0efc93aff287.png

cfd9cd6d2a9518c19ade42cf8d133e7e.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. 启动服务测试效果。

d78927605606ec0659c552c376f316b5.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/

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

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

@EnableTurbine:开启聚合服务

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

8080

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

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

4c328e5e7fe8b8656c51a8eacdeb1c08.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/380946.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WebClient与WebRequest差异

WebRequst的使用 WebClient和HttpWebRequst是用来获取数据的2种方式,在我的这篇数据访问(2)中主要是讲的WebClient的使用,一般而言,WebClient更倾向于“按需下载”,事实上掌握它也是相对容易的,而HttpWebRequst则允许你…

连接字符串

方式一:可以使用运算符**“”**来连接字符串 public class StringBufferReview {/*** 方式一:使用连接* param args*/public static void main(String[] args) {String s1 "hello";String s2 "Java";String s3 s1s2;System.out.…

的使用_面部精华使用方法和使用步骤;

核心提示:精华液,是护肤品中之极品,成分精致、功效强大、效果显著,始终保持着它拥有的高贵和神秘。精华液中的基质是水,含有硅树脂,有利于渗透进皮肤和推开,其它添加成分,则带有治疗…

处理字符串中的单个字符CharAt()

1、解决方法:采用循环以及String类的charAt()方法 charAt()方法将返回String对象中索引值**(从0开始)**位置的字符。所以,我们只需要执行从0到String.length()-1的循环,就能够依次处理字符串中的所有字符。 注意&#…

Acer Travelmate T3290笔记本拆机指南

中午闲来无事,把永哥的笔记本拆了(Acer Travelmate某款,很老的机器了)。整个过程有惊无险,也没拍照片,大体说下拆机流程吧,如果有人要拆该系笔记本可以参考。 先卸电池。拿掉诸如读卡器盖&#…

解决VS2013中出现类似于error C4996: 'scanf': This function or variable may be unsafe的安全检查错误

禁用安全检查,一步到位! 参考URL:https://blog.csdn.net/dan15188387481/article/details/49622783

横向全屏滑动插件_【案例】JQuery横向手风琴图片轮播切换代码

点击上方[我分享我快乐]→[...]右上角→[设为星标⭐]即可第一时间获取最新设计资源哈喽大家好,又到了每周二经典案例环节啦~同学们还想了解哪些网页知识今天段老师给同学们带来的是JQuery横向手风琴图片轮播切换代码。01脚本简介jQuery实现水平手风琴图片轮播切换特…

将字符串全部转为大写或者小写

1、全部转大写,使用toUpperCase()方法;全部转小写,使用toLowerCase()方法 public class StringUpperAndLowerReview {public static void main(String[] args) {String s "Hello jaVa";System.out.println(s.toUpperCase());Syst…

是网关吗_什么是边缘控制器?就是IPC+PLC+网关吗?今天就拆开一个来看看

边缘计算作为云计算的一项重要补充,在构建互联工厂中的作用正越来越受到重视。边缘计算实现了数据在网络边缘侧的分析、处理与储存,不仅减少了对云端依赖,也提高了数据的安全性。不管是因为云计算本身,还是网络传输受限&#xff0…

删除字符串的前置或者后置空格

解决方法:String类的trim()方法提供了此功能,trim()方法可以删除个行开头的空格和TAB符 public class TrimReview {public static void main(String[] args) {String s " xxxx ";System.out.println(s.trim());} }结果:

基于Windows 7旗舰版搭建WinCE6.0开发环境的过程

首先感谢JeffreyLi提供了更简便的安装WinCE6.0 R3的方法,今天验证过了,确实比我之前整理的《WinCE6.0 R3的安装步骤》方便很多,十分感谢! 为了方便大家参考,重新整理的安装步骤如下: *Please install the …

随机邮箱_msgsafe - 一个处于半死不活状态的加密邮箱

一个半死不活的、还算有点意思的、支持端到端加密的免费邮箱,目前看来。邮箱简介好像自从Protonmail火了之后,支持端到端加密的邮箱越来越多,但大多有一个共同点:后缀都不怎么样。msgsafe.io于2016年建立,当年为了推广…

Spring环境搭建

1、导包(此处省略如何下载Spring文件) 打开我们的spring-framework-4.2.3.RELEASE文件(这里我们只导入最基础的几个包),再打开libs文件: 找到以下几个包: 复制粘贴到eclipse中去,如…

win下python2,3和pip2,3双版本共存

在python环境中,有些开发需要依赖于python3的安装包,然而有些又需要python2才能运行。索性将python2和python3同时安装,并配置好各自的运行方式,以及各版本的pip。方便在需要安装工具包的时候,能准确定位到相应的版本。…

h5分享到朋友圈_微信朋友圈创意招聘广告制作方法 H5模板

微信朋友圈招聘广告发布出去那么久了,为啥还是没有求职者前来应聘呢?那么一定是你的招聘广告不够创意,所以没能吸引求职者的目光。如何才能制作一个有创意更吸引求职者眼球的招聘广告呢?现在你只需通过制作平台的一个模板&#xf…

还原特别慢_正手攻球最容易忽略的一步——还原

你距离标准的正手攻球可能只差一步。许多朋友在练习正手攻球一段时间以后,动作框架基本形成,有蹬转,能发力,肩部大臂都能放松,甚至能在击球的瞬间可以用上手指手腕的力量。但是录完视频一看,好像总是差那么…

Could not open lock file /var/lib/apt/lists/lock - open (13: Permission denied)

Ubuntu使用教程:E: 无法获得锁 /var/lib/apt/lists/lock - open (11 资源临时不可用) 查看一下是否有使用apt-get的程序,终端输入:ps -aux,找到使用apt-get的程序(最后一列),查看其PID号,然后杀死其进程,输入sudo kill PID. 用sudo apt-get update时出现“ E: 无法…

Spring三种对象创建方式

1、创建方式1:无参构造 我们先创建一个User类: public class User {private String name;private int age;public User() {System.out.println("无参构造方法");}public String getName() {return name;}public void setName(String name) {t…

unity中链接字符串和变量显示_理解Unity中的优化(六):字符串和文本

字符串和文本:在Unity项目中,处理字符串和文本经常会产生性能问题。在C#中,字符串是不变的。任何对字符串的操作都会重新分配新的字符串,这个代价是非常昂贵的。如果在多重循环中重复地执行字符串连接操作,就会造成性能…

Bean的scope属性

1、singleton(默认值):单列对象,被标识为单例的对象在spring容器中只会存在一个实例 测试如下: 我们创建一个User类: public class User {private String name;private int age;public User() {System.out…