1:Hystrix简介
1.1:分布式系统面临的问题
复杂分布式体系结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免地失败。 对于高流量的应用来说,单一的后端依赖可能会导致所有服务器上的所有资源都在几秒钟内饱和。比失败更糟糕的是,这些应用程序还可能导致服务之间的延迟增加,备份队列,线程和其他系统资源紧张,导致整个系统发生更多的级联故障。
这些都表示需要对故障和延迟进行隔离和管理,以便单个依赖关系的失败,不能取消整个应用程序或系统。
1.2:Hystrix是什么
Hystrix是一个用于处理分布式系统的延迟和容错的开源库,在分布式系统里,许多依赖不可避免的会调用失败,比如超时、异常等,Hystrix能够保证在一个依赖出问题的情况下,不会导致整体服务失败,避免级联故障,以提高分布式系统的弹性。
1.3:Hystrix能干什么
Hystrix能做很多事情,主要有:
- 服务隔离、降级、熔断、限流、快速失败
- 请求合并、请求缓存
- 接近实时的监控
1.4:Hystrix的设计原则
- 防止任何单独的依赖使用所有的容器(如Tomcat)用户线程
- 切断负载并快速失败,而不是排队
- 尽可能提供回退以保护用户免受故障
- 使用隔离技术(例如舱壁,泳道和断路器模式)来限制任何一个依赖的影响
- 通过接近实时的指标,监控和警报,优化发现时间
- 通过配置更改的低延迟传播,优化恢复时间
- 防止各种客户端执行失败,而不仅仅是网络通信
2: HelloWord
加入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix</artifactId>
</dependency>
官方示例https://github.com/Netflix/Hystrix/wiki/How-To-Use