Benthos 框架下的限速器降级方案探索
rate_limit
限速器
用于限制Benthos中并行组件(或跨实例)之间的共享资源使用, 一般使用resources
配置, 如下
1 | rate_limit_resources: # 固有字段, 表示限速器的资源 |
一些内部组件支持直接在配置中带上rate_limit
配置, 例如http_client
, 其原理是在组件内部通过*service.Resources
的AccessRateLimit
方法直接获取对应资源
1 | input: |
通过这种方式使用速率限制,可以保证输入仅以每秒 500 个请求的速率轮询 HTTP 源, 其内部实现大致如下