企业的稳定性建设

限流和降级

稳定性看法

接入层可以在nginx层做,服务层阿里采用的sentinal,相比开源出来的jar包,它是个集成了hsf,集策略配置,下发于一体的限流、降级管控平台。

流量调度平台

有些系统由于发布、网络抖动、故障等原因会导致服务中某个节点出现负载升高,导致高节点响应时间变长,请求排队等情况,进一步可能威胁到上下游的稳定性。

相比于上面提到的限流和降级,这种流量调度平台更专注解决服务某一个节点的问题。

实现原理

  1. 采集系统+业务指标
  2. 通过一定时间维度的指标和故障模型匹配
  3. 后续故障处置:降权(hsf的服务权重)、摘除(踢掉节点)。

开关服务

感觉很像spring-cloud全家桶中的config服务的作用,用来下发开关

容量压测和容量评估

  1. 线上流量引入,测试单机的qps,得到单机服务的性能基线
  2. 根据单机qps来评估集群容量,在双11大促等场景对服务承载能力掌控更精准,节省服务器资源

全链路压测

!很重要,也是阿里的法宝之一,方法论如下:

  1. 基础数据抽取:对现有的生产数据进行筛选、过滤、抽取
  2. 链路模型构造:构造压测链路的模型
  3. 链路验证:对模型进行验证
  4. 业务改造:业务对于压测的幂等支持,放线上数据污染能
  5. 数据平台:全链路压测的数据极地
  6. 流量平台:操控中心(对压测进行限制,配置),压测引擎(部署在外网cdn中)
  7. 中间件支持:压测标志支持,数据隔离跟踪等。
  8. 影子表:通过设置影子表将压测数据录入到影子表方变后续管理
  9. 安全策略支持:对压测数据的识别,不要误认为攻击,对于压测数据的监控防止恶意模仿

业务数据一致性

阿里内部将BCP(bussiness check platform),为了不影响业务,是通过时间触发的原理实现。

即。感知数据的变化(精卫、mq)之后根据配置的事件类型找到检测模型,进行规则校验,然后结果入库,发现异常发送报警通知。