如何使用hystrix 搭建分布式的高可用系统
来源:互联网 发布:外网映射端口 编辑:程序博客网 时间:2024/05/17 23:10
上一节中,我们讲到hystrix是解决系统高可用的核心技术。因此,本节我们将展开详细讲解如何通过hystrix来解决分布式系统的高可用性问题以及设计原则.
我们要明白hystrix如何提高分布式系统的高可用性与稳定性,我们就要知道分布式系统会出现什么问题?在分布式系统中,每个服务都会调用很多其他的服务,这些被调用的服务叫做依赖服务,某些依赖服务在有些时候不可用,出现故障时正常现象,
上一节中,我们讲到hystrix的主要技术包括:资源隔离,限流,熔断,降级,运维监控等,hystrix可以让我们对分布式系统中对服务间的调用进行控制,加入一些调用延迟或者依赖故障的容错机制。hystrix通过将服务进行资源隔离,进而保证某个依赖服务出现故障 的时候,这种故障在整个系统所有的依赖服务调用中进行蔓延,同时hystrix还提供故障时的failback降级机制。
总而言之,hystrix通过这些方法帮助我们提升分布式系统的可用性和稳定性。
Hystrix为了实现高可用性的架构,设计hystrix的时候,一般遵循以下设计原则:
1,对依赖服务调用时出现的调用延迟和调用失败进行控制和容错保护;
2,在复杂的分布式系统中,阻止某一个依赖服务的故障在整个系统中蔓延;
3,提供fail-fast(快速失败)和快速恢复的支持;
4,提供failback优雅降级的支持;
5,支持实时的监控、报警以及运维操作;
使用Hystrix要解决的问题:
1,阻止依赖服务耗尽所有资源; --- 资源隔离
比如使用bulkhead(舱壁隔离技术),swimlane(涌道技术),circuit breaker(短路技术) ,来限制任何一个依赖服务的故障的影响。
2,提供fallback降级机制来应对故障;
3,避免请求排队和积压,采用限流和fail fast来控制故障;
4,通过近实时的统计、监控、报警功能,来提高故障处理和恢复速度。
5,通过近实时的属性和配置热修改功能,来提高故障处理和服务的速度。
6,保护依赖服务调用的所有故障情况,而不仅仅只是网络情况。
Hystrix是如何解决这些问题的?
1,通过HystrixCommand或者HystrixObservableCommand来封装对外部依赖的访问请求,这个访问请求一般会运行在独立的线程中
2,为每一个依赖服务维护一个独立的线程池,或者是semaphore,当线程池已满时,直接拒绝对这个服务的调用
3,对依赖服务的调用成功次数,失败次数,拒绝次数,超时次数,进行统计
4,如果对一个依赖服务的调用失败次数超过一定的阈值,自动进行熔断,在一定时间内对该服务的调用直接降级,一段时间后再自动尝试恢复
5,对属性和配置的修改提供近实时的支持。
- 如何使用hystrix 搭建分布式的高可用系统
- 如何构建高可用的分布式系统
- hadoop2.5.2的本地模式、伪分布式集群、分布式集群和HDFS系统的高可用的环境搭建
- 分布式系统高可用设计
- 从ZooKeeper源代码看如何实现分布式系统(二)数据的高可用存储
- 搭建高可用的hadoop分布式集群HA
- 使用keepalived搭建高可用的Nginx
- 使用keepalived搭建高可用的nginx
- Hystrix高可用架构介绍
- 从分布式系统看流式计算的高可用技术
- 【转】分布式集群系统下的高可用session解决方案
- 分布式集群系统下的高可用session解决方案
- 分布式集群系统下的高可用session解决方案
- 分布式集群系统下的高可用session解决方案
- 分布式集群系统下的高可用session解决方案
- 分布式集群系统下的高可用session解决方案
- 分布式集群系统下的高可用session解决方案
- 分布式集群系统下的高可用session解决方案
- leetcode刷题-堆栈2
- ps 索引模式 导出变成了白色背景
- 设置导航栏的高度
- 未来物联网将如何改变我们的生活?
- Java并发编程:线程间协作的两种方式:wait、notify和Condition
- 如何使用hystrix 搭建分布式的高可用系统
- SSE2 指令
- 自动装机及ks.cfg&dhcp配置
- js处理大型数据崩掉解决方案
- ulimit 不生效解决
- JAVA中前台校验和后台校验哪个安全,如果后台校验安全为什么不取消前台校验
- 【实战】使用animation drawable来实现动画效果
- 测试报告
- sparkSQL本地单机版测试配置