AWS Event Bridge投递至SQS速度异常缓慢求助排查
检查EventBridge规则的批处理配置
EventBridge默认会对匹配事件进行批处理投递,默认批大小为10、批窗口最长60秒。若事件产生频率不高或批窗口设置过大,会导致投递延迟、速率偏低。可调整规则的Batch size(最大1000)和Batch window(最小1秒),减少事件聚合时间,提升投递频次。验证EventBridge事件总线的并发限制
尽管控制台显示Put Events配额为每秒10000次,但事件总线的事件处理并发数可能存在默认阈值(因区域或账户而异)。查看CloudWatch指标EventBridge > Rules > Invocations和Throttles,确认是否有调用被限流,若有则提交配额提升申请。优化Ruby客户端的事件发送逻辑
即便客户端无配额限制,若Ruby代码单条调用put_events而非批量发送,会降低EventBridge接收事件的效率,间接影响到SQS的投递速率。确保客户端使用批量接口,每次请求最多发送10条事件(put_events单请求上限),提升事件进入EventBridge的速度。简化EventBridge规则的过滤条件
若规则的事件模式(Event Pattern)过于复杂(如多层嵌套、多条件匹配),会增加EventBridge的事件匹配耗时,导致事件堆积无法及时投递。简化过滤条件或拆分规则,降低匹配计算开销。监控EventBridge的事件堆积指标
在CloudWatch中查看EventBridge > Events > FailedInvocations和PendingInvocations指标,若存在大量待处理调用,说明EventBridge自身处理能力不足。可考虑拆分规则到多个事件总线,或在支持的区域调整规则的并发执行数。确认SQS队列的触发器附加限制
虽已排除SQS本身问题,但需确认EventBridge作为触发器时,是否开启FIFO队列的严格顺序或指定了消息分组ID,这会迫使SQS按顺序处理消息,限制投递速率。若为FIFO队列,尝试调整分组策略,或改用标准队列测试速率。
内容的提问来源于stack exchange,提问作者D2TheC

