【问题标题】:Amazon EventBridge PutEvents throttlingAmazon EventBridge PutEvents 限制
【发布时间】:2020-08-21 07:52:24
【问题描述】:
我计划在我的应用程序中使用 Amazon EventBridge。我看到事件被限制超过某些配额。虽然它在 100 到几 1000 的范围内,但我不想丢失事件并主动添加更多总线来处理高速事件。从 API 中,我看到 PutEvents 抛出 500 作为异常 https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutEvents.html
有没有人可靠地使用 PutEvents 异常来处理这种情况并添加总线?我看到有FailedEntryCount,但文档没有说明失败的原因。所以,我不确定我是否可以依靠。我可以使用其他服务(SQS、DB),但想在我的用例中使用 EventBridge。
如果有其他路由 (CloudTrail PutEvents) 或 CloudWatch Logs 需要处理,我愿意听。
【问题讨论】:
标签:
amazon-web-services
event-sourcing
event-driven
aws-event-bridge
【解决方案1】:
EventBridge 的 PutEvents API 有软限制,可以按账户增加。
在我看来,您有两个问题:一个是限制的工作原理,另一个是 FailedEntryCount。
节流
限制将在操作本身上进行(即当您调用 PutEvents 时)(提示:尝试一次最多批处理 10 个事件 - 有助于减少延迟)。如果您受到限制,AWS 开发工具包将暂时重试,假设您的调用率没有显着且持续高于分配的限制。如果重试几次后仍然受到限制,则整个操作将失败。如果是这样,您可以放心地假设您的事件尚未被摄取。
我建议监控节流/错误率和数量,以主动增加 EventBridge 中的 PutEvents 限制。有多种选择可以做到这一点,所以我不会在这里包括。
无论哪种方式,请联系 AWS Support,了解他们如何帮助提高限制。
FailedEntryCount
由于这是一个批处理 API,您应该始终检查 FailedEntryCount > 0,并重试未能提取的条目(如果适用)。 FailedEntryCount 可以信赖,因为它明确告诉您条目失败,您应该检查响应以了解哪些条目失败。