腾讯开源 | 微服务负载保护系统 ModernFlux 正式开源

来源: 投稿
作者: 腾讯开源
2021-07-14 14:04:00

导语

ModernFlux为异构环境下微服务提供分布式多维负载保护。由腾讯IEG-AMS团队自研,并于2018年正式上线运营。应用于腾讯IEG 80%的营销活动以及多个内部平台。经历各种秒杀活动、游戏周年庆以及节假日,取得很好实践效果,保障了系统安全运营。现将ModernFlux对外开源,为微服务开源社区贡献力量。

主要设计目标

  1. 方便业务接入,易运营,支持业务系统异构部署, 对现有业务运营风险影响小。

  2. 支持全局流控和服务上下游联动,支持业务/资源等多维度流控,根据业务负载对外提供弹性服务。

  3. 数据传输具有容错机制,流控服务具有健壮性并有容灾机制。 

ModernFlux功能介绍以及适用场景

ModernFlux为异构环境下微服务提供分布式多维负载保护,具体通过对微服务南北流量统一控制,东西流量弹性熔断,以及根据业务计算资源自适应最大负载。

主要设计特点:

1.低消耗,对业务计算/存储/网络等资源消耗小。
2.业务扩缩容对负载保护系统无感知,即系统对业务扩缩容透明。
3.在保证流控精度前提下,对业务流量(剧烈)变化不敏感,无需频繁扩缩容。

应用场景有营销活动(如秒杀/周年庆),电商大促,多业务混布虚拟隔离。

大型游戏秒杀营销活动入口流量难以预估,由于流量瞬间暴增和营销资源有限,单纯堆砌资源成本高,也无必要,自动扩容往往也来不及。ModernFlux对业务入口流量进行控制,对超过系统负载或者营销资源流量进行限制,保障系统安全对外服务。

为提高资源使用率和降低运营成本,往往会把多业务部署在一组资源。为避免业务之间互相影响,需对各业务流量进行保护和限制。通过对各业务最大流量进行限制,保障各业务能错峰充分使用资源,避免流量高峰时互相影响。

微服务通常Topo结构复杂,技术选型广泛,各服务性能和健壮性参次不齐,关键节点异常有可能造成整个系统瘫痪。ModernFlux提供弹性熔断机制,可对关键或脆弱服务模块提供保护,保障系统运营安全。

ModernFlux应用效果

下图是部分ModernFlux应用于营销活动效果图,黄色线表示实际通过流量,黑色线表示被拒绝的流量,蓝色线表示上游的真实流量绿色表示整个Set流量控制(未触发):

ModernFlux项目规划

1.增加精细小流量控制支持,以及立体多层流控支持。
2.完善容灾支持
3.与微服务框架(如Istio)融合
4.与业务自动扩容融合
5.结合业务历史数据,使系统更智能化,减少阈值使用或其它用户介入

ModernFlux开源地址

https://github.com/Tencent/ModernFlux

展开阅读全文
16 收藏
分享
0 评论
16 收藏
分享
返回顶部
顶部
返回顶部
顶部