ofbiz架构的分布式改造(三)
2016-06-07 18:56
288 查看
分布式架构高可用设计的关键:优雅降级
在大型分布式系统中,由于访问的高并发性,会导致某个服务在某些时候突然接到超过其正常处理能力的大量的调用请求,从而导致该服务繁忙,调用超时开始出现,而后续新的调用请求又源源不断的到来,给该服务带来过度的压力,最终使得该服务暂时不可用,不能处理任何一个调用请求
对于这种情况,就需要在服务的客户端调用框架里引入优雅降级(fallback)的设计,也就是当我们调用某个服务时,要是多次出现了调用超时的错误,说明该服务已经处于繁忙状态,这时,对于新来的调用请求,客户端就直接返回一个服务不可用信息,不发起对该服务的具体调用,通过屏蔽超过该服务正常处理能力的过度调用,减轻该服务在该时段的并发压力,不至于因为过度请求而被拖垮
具体的设计是,记录下出现调用错误的次数,当次数超过某个阀值时,客户端启动降级,设置一个自动重试时间(比如10秒),在该时间未到时,对该服务的请求,直接返回一个信息,不启动对该服务的正常调用,当自动重试时间到了的时候,客户端重新发起对该服务的正常调用,要是调用成功,则脱离降级模式,进入正常模式
在服务的客户端调用框架里引入优雅降级的设计是保证分布式系统高可靠性,高稳定性的关键
在大型分布式系统中,由于访问的高并发性,会导致某个服务在某些时候突然接到超过其正常处理能力的大量的调用请求,从而导致该服务繁忙,调用超时开始出现,而后续新的调用请求又源源不断的到来,给该服务带来过度的压力,最终使得该服务暂时不可用,不能处理任何一个调用请求
对于这种情况,就需要在服务的客户端调用框架里引入优雅降级(fallback)的设计,也就是当我们调用某个服务时,要是多次出现了调用超时的错误,说明该服务已经处于繁忙状态,这时,对于新来的调用请求,客户端就直接返回一个服务不可用信息,不发起对该服务的具体调用,通过屏蔽超过该服务正常处理能力的过度调用,减轻该服务在该时段的并发压力,不至于因为过度请求而被拖垮
具体的设计是,记录下出现调用错误的次数,当次数超过某个阀值时,客户端启动降级,设置一个自动重试时间(比如10秒),在该时间未到时,对该服务的请求,直接返回一个信息,不启动对该服务的正常调用,当自动重试时间到了的时候,客户端重新发起对该服务的正常调用,要是调用成功,则脱离降级模式,进入正常模式
在服务的客户端调用框架里引入优雅降级的设计是保证分布式系统高可靠性,高稳定性的关键
相关文章推荐
- 分布式版本管理git入门指南使用资料汇总及文章推荐
- SQL Server高可用的常见问题分析
- C#分布式事务的超时处理实例分析
- Erlang分布式节点中的注册进程使用实例
- C++实现的分布式游戏服务端引擎KBEngine详解
- windows NLB+ARR实现Web负载均衡高可用/可伸缩的方法
- MySQL数据库的高可用方案总结
- ASP.NET通过分布式Session提升性能
- Spring+Mybatis+Mysql搭建分布式数据库访问框架的方法
- Python使用multiprocessing实现一个最简单的分布式作业调度系统
- 分享一个简单易用的RPC开源项目—Tatala
- 手把手教你配置Hbase完全分布式环境
- 搭建分布式架构2--CentOs下安装Tomcat7(环境准备)
- 搭建分布式架构4--ZooKeeper注册中心安装
- Glusterfs:趋于成熟的集群文件系统
- 关于glusterfs的directory-layout-spread参数
- tomcat集群扩展session集中管理,Memcached-session-manager...
- 多任务分布式并发处理
- Redis集群快速搭建
- 负载均衡及会话保存(Ofbiz框架)