服务容错性设计

服务要有容错设计,为失败而设计。


服务主要异常场景:

(1)服务内部出错、异常;

(2)服务处理延迟;

(3)服务处理过载;

(4)网络链路延迟或中断;

(5)服务依赖链中部分依赖SLA不达标,造成整体服务不可用;

(6)服务链条过长,造成SLA整体不可控;


解决的思路:隔离(物理或逻辑)、自我保护、失效转移或恢复、降级。

1、隔离手段:依据服务重要性分级或流量特点、用户画像等,从物理上隔离服 务。主要使用分流技术;将服务使用的资源(CPU、线程、IO等)隔离,主要使用舱壁模式;

2、自我保护手段:快速失败(failfast)、流控、超时、熔断;

3、失效转移或恢复手段:失效检测、重试、转移(failover)、回退恢复(failback);

4、降级手段:依据依赖服务的重要性或依赖程度(强、弱),同步变异步,降级开关、拒绝部分服务等。


降级方案、限流方案设计如下:

 1.  每个系统需要分析调用量前10的服务(URL、ESB、RSF服务),并综合考虑其响应时间和耗时。原则上所有调用量大且降级后对销售或作业不造成较大影响的服务,都需要考虑。 

2. 降级、限流的目的是保护系统,减少本系统的压力、或降低对后端系统的压力、或降低对网络的压力。 

3. 限流方案不能造成正常销售或作业执行工作,降级后不能对销售造成较大的影响,对销售的较小影响是可以接受的。先限流,再降级。 

4. 降级手段有:功能禁用、增加功能的缓存时间、使用本地缓存而不是调用外部服务、减少某些业务特性以降低业务复杂度、不调用后端依赖服务、异常时采用默认数据或兜底数据,同步变异步调用,减少JOB执行频率或变更业务峰值JOB触发调用时间等;限流手段有:随机拒绝请求、拒绝低优先级系统调用,拒绝低级别用户调用,根据白名单或黑名单规则拒绝特定用户请求调用,对失败率高或响应超时系统调用拒绝调用,利用线程池队列排队处理调用,拒绝超出处理能力调用等。  

5. OLAP应用,如对OLTP系统的物理机器或网络资源造成了争用,同样需要设计降级方案。    

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值