其他分享
首页 > 其他分享> > 详解API Gateway流控实现,揭开ROMA平台高性能秒级流控的技术细节

详解API Gateway流控实现,揭开ROMA平台高性能秒级流控的技术细节

作者:互联网

摘要:ROMA平台的核心系统ROMA Connect源自华为流程IT的集成平台,在华为内部有超过15年的企业业务集成经验。

本文分享自华为云社区《ROMA集成关键技术(1)-API流控技术详解》,作者:中间件小哥 。

1 概述

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

图1 ROMA Connect功能视图

其中APIC(APIC Connect)作为核心组件包含了API Gateway能力,承载了API的集成和开放能力,流控作为API Gateway的关键特性,为用户的API集成、开放提供了快速、有效的安全防护,本文将详细描述API Gateway流控实现,揭开高性能秒级流控的技术细节。

2 高并发高吞吐系统流控需求

2.1 流量控制的动因

在高并发高吞吐系统中,通常的技术关键词是降级、缓存、流控等,流控更是其中的核心技术,当然,这些技术是相辅相成的。

  1. 提升系统稳定性/防止雪崩
  2. 保障高优先级服务
  3. 降低响应时延,提升用户体验
  4. 提升系统有效吞吐量
  5. 限制性业务使用等
  1. 限制总并发数(比如数据库连接池、线程池)
  2. 限制瞬时并发数(如nginx的limit_conn模块)
  3. 限制时间窗口内的平均速率
  4. 限制远程接口调用速率
  5. 限制MQ的消费速率
  6. 限制网络流量
  7. 限制CPU与内存的使用率

2.2 业务挑战

在大业务场景下,主要挑战是高并发、低时延、高精度、多维度灵活扩展等诉求。

图2 业务挑战

而对于流控的具体挑战如下:

3 常见流控技术分析

3.1 常见流控逻辑架构

图3 常见流控逻辑架构

各种方案的优缺点如下表所示:

3.2 常见流控算法

3.2.1 计数器算法

优点:1. 算法简单易实现。

不足:1. 输出不平滑。2. 有临界问题,在流控周期边界处易发生输出激增,大幅超过流控阈值,冲坏后端服务。

3.2.2 滑动窗口算法

优点:1. 可以解决计数器算法的临界问题。2. 算法简单易实现。

不足:1. 精度要求越高需要的窗口格子越多,内存开销较大。2. 不保证输出平滑。

3.2.3 漏桶算法

优点:1. 输出速度与输入速度无关,是恒定的,流控效果平滑。2. 无临界问题。3. 不依赖令牌。

不足:1. 由于漏桶输出速度恒定,所以不支持一定程度的突发请求。2. 如果桶满,输入数据会被丢弃

3.2.4 令牌桶算法

优点:1. 允许一定程度的突发流量。2. 通过定制令牌添加方法,可定制复杂的流控策略。3. 无临界问题。

不足:1. 当桶内无可用令牌时,输入请求会被直接丢弃。2. 不支持按优先级处理输入请求。

4 ROMA Connect流控技术实现

4.1 总体策略

4.2 逻辑视图

4.3 架构设计

4.4 内置算法

4.4.1 带缓存带颜色的令牌桶算法

4.4.2 高精度高吞吐量的流控算法

4.4.3 动态流控算法

基于运行状态、趋势、API调用链进行动态流控。

点击关注,第一时间了解华为云新鲜技术~

标签:令牌,请求,流控,技术细节,秒级,API,阈值,Gateway
来源: https://blog.csdn.net/devcloud/article/details/119025043