导语
ModernFlux为异构环境下微服务提供分布式多维负载保护。由腾讯IEG-AMS团队自研,并于2018年正式上线运营。应用于腾讯IEG 80%的营销活动以及多个内部平台。经历各种秒杀活动、游戏周年庆以及节假日,取得很好实践效果,保障了系统安全运营。现将ModernFlux对外开源,为微服务开源社区贡献力量。
主要设计目标 方便业务接入,易运营,支持业务系统异构部署, 对现有业务运营风险影响小。 支持全局流控和服务上下游联动,支持业务/资源等多维度流控,根据业务负载对外提供弹性服务。 数据传输具有容错机制,流控服务具有健壮性并有容灾机制。
ModernFlux功能介绍以及适用场景 ModernFlux为异构环境下微服务提供分布式多维负载保护,具体通过对微服务南北流量统一控制,东西流量弹性熔断,以及根据业务计算资源自适应最大负载。
主要设计特点: 1.低消耗,对业务计算/存储/网络等资源消耗小。 2.业务扩缩容对负载保护系统无感知,即系统对业务扩缩容透明。 3.在保证流控精度前提下,对业务流量(剧烈)变化不敏感,无需频繁扩缩容。
应用场景有营销活动(如秒杀/周年庆),电商大促,多业务混布虚拟隔离。 大型游戏秒杀营销活动入口流量难以预估,由于流量瞬间暴增和营销资源有限,单纯堆砌资源成本高,也无必要,自动扩容往往也来不及。ModernFlux对业务入口流量进行控制,对超过系统负载或者营销资源流量进行限制,保障系统安全对外服务。
为提高资源使用率和降低运营成本,往往会把多业务部署在一组资源。为避免业务之间互相影响,需对各业务流量进行保护和限制。通过对各业务最大流量进行限制,保障各业务能错峰充分使用资源,避免流量高峰时互相影响。
微服务通常Topo结构复杂,技术选型广泛,各服务性能和健壮性参次不齐,关键节点异常有可能造成整个系统瘫痪。ModernFlux提供弹性熔断机制,可对关键或脆弱服务模块提供保护,保障系统运营安全。
ModernFlux应用效果 下图是部分ModernFlux应用于营销活动效果图,黄色线表示实际通过流量,黑色线表示被拒绝的流量,蓝色线表示上游的真实流量绿色表示整个Set流量控制(未触发):
ModernFlux项目规划 1.增加精细小流量控制支持,以及立体多层流控支持。 2.完善容灾支持 3.与微服务框架(如Istio)融合 4.与业务自动扩容融合 5.结合业务历史数据,使系统更智能化,减少阈值使用或其它用户介入
ModernFlux开源地址 https://github.com/Tencent/ModernFlux
|