Hystrx权威指南--Hystrix实现原理
来源:互联网 发布:mac怎么打开微博故事 编辑:程序博客网 时间:2024/06/16 08:56
1.Hystrix中的命令模式
将所有请求外部系统(或者叫依赖服务)的逻辑封装到 HystrixCommand或者HystrixObservableCommand(依赖RxJava)对象中
Run()方法为要实现的业务逻辑,这些逻辑将会在独立的线程中被执行
当请求依赖服务时出现拒绝服务、超时或者短路(多个依赖服务顺序请求,前面的依赖服务请求失败,则后面的请求不会发出)时,执行该依赖服务的失败回退逻辑(Fallback)
2.隔离策略
应用在复杂的分布式结构中,可能会依赖许多其他的服务,并且这些服务都不可避免地有失效的可能。如果一个应用没有与依赖服务的失效隔离开来,那么它将有可能因为依赖服务的失效而失效。
Hystrix为每一个依赖服务维护一个线程池(或者信号量),当线程池占满,该依赖服务将会立即拒绝服务而不是排队等待。
每个依赖服务都被隔离开来,Hystrix 会严格控制其对资源的占用,并在任何失效发生时,执行失败回退逻辑。
3.观察者模式
Metrics记录了哪些信息
public static class HealthCounts { private final long totalCount; private final long errorCount; private final int errorPercentage;
Metrics如何统计?
Metrics在统计各种状态时,时运用滑动窗口思想进行统计的,在一个滑动窗口时间中又划分了若干个Bucket(滑动窗口时间与Bucket成整数倍关系),滑动窗口的移动是以Bucket为单位进行滑动的,
如:HealthCounts 记录的是一个Buckets的监控状态,Buckets为一个滑动窗口的一小部分,如果一个滑动窗口时间为 t ,Bucket数量为 n,那么每t/n秒将新建一个HealthCounts对象。
熔断机制
熔断是参考电路而产生的一种保护性机制,即系统中如果存在某个服务,失败率过高时,将开启熔断器,对于后续的调用,不在继续请求服务,而是进行Fallback操作。
熔断所依靠的数据即是Metrics中的HealthCount所统计的错误率。
- Hystrx权威指南--Hystrix实现原理
- Hystrx权威指南--Hystrix是什么
- Hystrx权威指南--Hystrix隔离策略
- Hystrx权威指南--Hystrix调用方法解析
- Hystrx权威指南--Hystrix的Timeout解析
- Hystrx权威指南--Hystrix执行流程
- Hystrx权威指南--Hystrix属性配置策略
- Hystrx权威指南--Hystrix的注解方式
- Hystrx权威指南--Hystrix的类是如何组织的
- Hystrx权威指南--Hystrix的线程池解析
- Hystrx权威指南--Hystrix的熔断机制解析
- Hystrx权威指南--Hystrix请求缓存和COLLAPSER
- 【Hystrix权威指南二】Hystrix隔离策略
- 【Hystrix权威指南一】Hystrix开发之旅
- 【Hystrix权威指南三】Hystrix隔离策略源码分析一
- 【Hystrix权威指南四】Hystrix隔离策略源码分析二
- Hystrix文档-实现原理
- Hystrix实现原理分析
- 记录比较好的参考文章网址
- Random函数
- ActiveMQ死信队列使用
- Android数据库(SQLite)框架(6)——使用LitePal查询
- SVN客户端切换地址
- Hystrx权威指南--Hystrix实现原理
- JavaScript的基本概念----函数
- Oracle搜索编译有问题或者失效的存储过程,包,函数等
- Oracle查看执行失败的JOB的Sql
- 深入了解MyBatis二级缓存
- TensorFlow学习笔记(十)tf搭建神经网络可视化结果
- Oracle数据同步
- To Write A Stack
- Fragment