详解ROMA Connect API 流控实现技术

摘要:本文将详细描述API Gateway流控实现,揭开高性能秒级流控的技术细节 。
1、概述ROMA平台的核心系统ROMA Connect源自华为流程IT的集成平台,在华为内部有超过15年的企业业务集成经验 。依托ROMA Connect , 可以将物联网、大数据、视频、统一通信、GIS等基础平台及各个应用的服务、消息、数据统一集成适配以及编排,屏蔽各个平台对上层业务的接口差异性 , 对上提供服务、消息、数据集成使能服务,以支撑新业务的快速开发部署,提升应用开发效率 。适用于平安园区、智慧城市、企业数字化转型等场景 , 图1展示了ROMA Connect的功能视图 。
详解ROMA Connect API 流控实现技术

文章插图
图1 ROMA Connect功能视图
其中APIC(APIC Connect)作为核心组件包含了API Gateway能力,承载了API的集成和开放能力,流控作为API Gateway的关键特性,为用户的API集成、开放提供了快速、有效的安全防护,本文将详细描述API Gateway流控实现,揭开高性能秒级流控的技术细节 。
体验ROMA Ccnnect入门版
2、高并发高吞吐系统流控需求2.1流量控制的动因在高并发高吞吐系统中,通常的技术关键词是降级、缓存、流控等,流控更是其中的核心技术,当然,这些技术是相辅相成的 。
1、流控的价值
  • 提升系统稳定性/防止雪崩
  • 保障高优先级服务
  • 降低响应时延,提升用户体验
  • 提升系统有效吞吐量
  • 限制性业务使用等
2、流控的目标参数
  • 限制总并发数(比如数据库连接池、线程池)
  • 限制瞬时并发数(如nginx的limit_conn模块)
  • 限制时间窗口内的平均速率
  • 限制远程接口调用速率
  • 限制MQ的消费速率
  • 限制网络流量
  • 限制CPU与内存的使用率
2.2业务挑战在大业务场景下,主要挑战是高并发、低时延、高精度、多维度灵活扩展等诉求 。
详解ROMA Connect API 流控实现技术

文章插图
图2 业务挑战
而对于流控的具体挑战如下:
  • 每天10次与每分钟10万次的流控同时存在
  • 流控反馈周期比流控周期还久
  • 流控的维度特别多
  • 流控同步处理时间影响用户体验
  • 流控静态设置,要么过高要么过低
  • 流控失效造成业务失效
  • 流控节点部署复杂资源消耗高
3、常见流控技术分析3.1常见流控逻辑架构
详解ROMA Connect API 流控实现技术

文章插图
图3 常见流控逻辑架构
各种方案的优缺点如下表所示:
详解ROMA Connect API 流控实现技术

文章插图
3.2常见流控算法3.2.1计数器算法优点:算法简单易实现 。
不足:(1)输出不平滑 。(2)有临界问题,在流控周期边界处易发生输出激增,大幅超过流控阈值,冲坏后端服务 。
3.2.2滑动窗口算法
详解ROMA Connect API 流控实现技术

文章插图
优点:(1)可以解决计数器算法的临界问题 。(2)算法简单易实现 。
不足:(1)精度要求越高需要的窗口格子越多 , 内存开销较大 。(2)不保证输出平滑 。
3.2.3漏桶算法
详解ROMA Connect API 流控实现技术

文章插图
优点:(1)输出速度与输入速度无关,是恒定的,流控效果平滑 。(2)无临界问题 。(3)不依赖令牌 。
不足:(1)由于漏桶输出速度恒定,所以不支持一定程度的突发请求 。(2)如果桶满,输入数据会被丢弃
3.2.4令牌桶算法
详解ROMA Connect API 流控实现技术

文章插图
优点:(1)允许一定程度的突发流量 。(2)通过定制令牌添加方法 , 可定制复杂的流控策略 。(3)无临界问题 。
不足:(1)当桶内无可用令牌时,输入请求会被直接丢弃 。(2)不支持按优先级处理输入请求 。
4、ROMA Connect流控技术实现4.1总体策略