YXZ的博客

好好努力,天天向上


  • 主页

  • 标签

  • 分类

  • 归档

  • 站点地图

  • 搜索

深入 Hystrix 断路器执行原理

发表于 2019-03-04 | 分类于 面试题 | 评论数: | 阅读次数:

深入 Hystrix 断路器执行原理

RequestVolumeThreshold

HystrixCommandProperties.Setter()
.withCircuitBreakerRequestVolumeThreshold(int)

表示在滑动窗口中,至少有多少个请求,才可能触发断路。

Hystrix 经过断路器的流量超过了一定的阈值,才有可能触发断路。比如说,要求在 10s 内经过断路器的流量必须达到 20 个,而实际经过断路器的流量才 10 个,那么根本不会去判断要不要断路。

ErrorThresholdPercentage

HystrixCommandProperties.Setter()
.withCircuitBreakerErrorThresholdPercentage(int)

表示异常比例达到多少,才会触发断路,默认值是 50(%)。

如果断路器统计到的异常调用的占比超过了一定的阈值,比如说在 10s 内,经过断路器的流量达到了 30 个,同时其中异常访问的数量也达到了一定的比例,比如 60% 的请求都是异常(报错 / 超时 / reject),就会开启断路。

阅读全文 »

消息队列面试场景

发表于 2019-03-04 | 分类于 面试题 | 评论数: | 阅读次数:

消息队列面试场景

面试官:你好。

候选人:你好。

(面试官在你的简历上面看到了,呦,有个亮点,你在项目里用过 MQ,比如说你用过 ActiveMQ)

面试官:你在系统里用过消息队列吗?(面试官在随和的语气中展开了面试)

候选人:用过的(此时感觉没啥)

面试官:那你说一下你们在项目里是怎么用消息队列的?

候选人:巴拉巴拉,“我们啥啥系统发送个啥啥消息到队列,别的系统来消费啥啥的。比如我们有个订单系统,订单系统每次下一个新的订单的时候,就会发送一条消息到 ActiveMQ 里面去,后台有个库存系统负责获取消息然后更新库存。”

阅读全文 »

深入 Hystrix 线程池隔离与接口限流

发表于 2019-03-04 | 分类于 面试题 | 评论数: | 阅读次数:

深入 Hystrix 线程池隔离与接口限流

前面讲了 Hystrix 的 request cache 请求缓存、fallback 优雅降级、circuit breaker 断路器快速熔断,这一讲,我们来详细说说 Hystrix 的线程池隔离与接口限流。

hystrix-process

Hystrix 通过判断线程池或者信号量是否已满,超出容量的请求,直接 Reject 走降级,从而达到限流的作用。

限流是限制对后端的服务的访问量,比如说你对 MySQL、Redis、Zookeeper 以及其它各种后端中间件的资源的访问的限制,其实是为了避免过大的流量直接打死后端的服务。

线程池隔离技术的设计

Hystrix 采用了 Bulkhead Partition 舱壁隔离技术,来将外部依赖进行资源隔离,进而避免任何外部依赖的故障导致本服务崩溃。

舱壁隔离,是说将船体内部空间区隔划分成若干个隔舱,一旦某几个隔舱发生破损进水,水流不会在其间相互流动,如此一来船舶在受损时,依然能具有足够的浮力和稳定性,进而减低立即沉船的危险。

bulkhead-partition

阅读全文 »

为什么说Java中只有值传递

发表于 2019-02-20 | 分类于 Java | 评论数: | 阅读次数:

对于初学者来说,要想把这个问题回答正确,是比较难的。在第二天整理答案的时候,我发现我竟然无法通过简单的语言把这个事情描述的很容易理解,遗憾的是,我也没有在网上找到哪篇文章可以把这个事情讲解的通俗易懂。所以,就有了我写这篇文章的初衷。这篇文章中,我从什么是方法的实际参数和形式参数开始,给你讲解为什么说Java中只有值传递。

阅读全文 »

26个Spring Boot小知识

发表于 2019-02-20 | 分类于 Springboot | 评论数: | 阅读次数:

1、什么是 Spring Boot?

Spring Boot是spring开源组织下的子项目,它是spring的升级版,简化了使用难度,简化了繁琐的配置,提供了多多种启动器,让我们更容易上手使用

阅读全文 »

Java工程师成长之路

发表于 2019-02-20 | 分类于 Java | 评论数: | 阅读次数:

内容改编自:https://mp.weixin.qq.com/s/hlAn6NPR1w-MAwqghX1FPg

基础篇

面向对象

面向对象、面向过程、面向对象的三大基本特征和五大基本原则

Java如何实现的平台无关

为什么说 Java 中只有值传递

继承、多态及方法重写、重载

什么是构造函数

成员变量和局部变量和成员方法

阅读全文 »

Java语言是平台无关的

发表于 2019-02-20 | 分类于 Java | 评论数: | 阅读次数:

平台与机器指令

无论哪种编程语言编写的应用程序都需要经过操作系统和处理器来完成程序的运行,因此这里的平台是又OS和CPU所构成的,所谓的平台无关就是指软件的运行不会因操作系统、处理器的变化而无法运行或出现运行错误。

阅读全文 »

什么是构造函数

发表于 2019-02-20 | 分类于 Java | 评论数: | 阅读次数:

什么是构造函数

java构造函数,也叫构造方法,是java中一种特殊的函数。函数名与相同,无返回值。

作用:一般用来初始化成员属性和成员方法的,即new对象产生后,就调用了对象了属性和方法。

阅读全文 »

成员变量和局部变量

发表于 2019-02-20 | 分类于 Java | 评论数: | 阅读次数:

成员变量和局部变量简述

在Java语言里,根据定义变量位置的不同,可以将变量分成两大类:成员变量和局部变量。二者的运行机制存在较大差异。

阅读全文 »

什么是面向对象

发表于 2019-02-20 | 分类于 Java | 评论数: | 阅读次数:

面向过程

面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。

例如五子棋,面向过程的设计思路就是首先分析问题的步骤:1、开始游戏,2、黑子先走,3、绘制画面,4、判断输赢,5、轮到白子,6、绘制画面,7、判断输赢,8、返回步骤2,9、输出最后结果。把上面每个步骤用不同的方法来实现。

阅读全文 »
1…8910…13
YXZ

YXZ

127 日志
15 分类
57 标签

标签云

  • @Async1
  • AOP1
  • Activity3
  • Android1
  • Angular5
  • Binder1
  • Canvas2
  • Centos3
  • ES3
  • Event1
  • EventBus1
  • Handler1
  • Hexo4
  • Hystrix7
  • Intent1
  • Jakeson1
  • Java11
  • Javascript3
  • Java面试题1
  • Json1
  • Linux1
  • ListView1
  • Maven1
  • Mybatis4
  • Mysql6
  • Service1
  • Spring2
  • Springboot3
  • Springcloud7
  • View2
  • Websocket3
  • Window1
  • Yilia2
  • dubbo7
  • lucene1
  • redis9
  • replaceAll1
  • yilia主题1
  • zookeeper1
  • 分布式6
  • 小程序4
  • 广播1
  • 微服务1
  • 性能优化1
  • 懒加载1
  • 扫福字1
  • 推送1
  • 插件1
  • 正则表达式1
  • 消息队列6
  • 系统架构1
  • 缓存技术1
  • 自动注入1
  • 进程1
  • 面试题38
  • 项目发布1
  • 高并发1
RSS
GitHub 微博

Advertising Position

苏ICP备18068125号-1 © 2019 YXZ的个人博客
|
0%