限流和降级
接入层可以在nginx层做,服务层阿里采用的sentinal,相比开源出来的jar包,它是个集成了hsf,集策略配置,下发于一体的限流、降级管控平台。
流量调度平台
有些系统由于发布、网络抖动、故障等原因会导致服务中某个节点出现负载升高,导致高节点响应时间变长,请求排队等情况,进一步可能威胁到上下游的稳定性。
相比于上面提到的限流和降级,这种流量调度平台更专注解决服务某一个节点的问题。
实现原理
- 采集系统+业务指标
- 通过一定时间维度的指标和故障模型匹配
- 后续故障处置:降权(hsf的服务权重)、摘除(踢掉节点)。
开关服务
感觉很像spring-cloud全家桶中的config服务的作用,用来下发开关
容量压测和容量评估
- 线上流量引入,测试单机的qps,得到单机服务的性能基线
- 根据单机qps来评估集群容量,在双11大促等场景对服务承载能力掌控更精准,节省服务器资源
全链路压测
!很重要,也是阿里的法宝之一,方法论如下:
- 基础数据抽取:对现有的生产数据进行筛选、过滤、抽取
- 链路模型构造:构造压测链路的模型
- 链路验证:对模型进行验证
- 业务改造:业务对于压测的幂等支持,放线上数据污染能
- 数据平台:全链路压测的数据极地
- 流量平台:操控中心(对压测进行限制,配置),压测引擎(部署在外网cdn中)
- 中间件支持:压测标志支持,数据隔离跟踪等。
- 影子表:通过设置影子表将压测数据录入到影子表方变后续管理
- 安全策略支持:对压测数据的识别,不要误认为攻击,对于压测数据的监控防止恶意模仿
业务数据一致性
阿里内部将BCP(bussiness check platform),为了不影响业务,是通过时间触发的原理实现。
即。感知数据的变化(精卫、mq)之后根据配置的事件类型找到检测模型,进行规则校验,然后结果入库,发现异常发送报警通知。