为触发 lambda 的外部服务限制 TPS
Throttle TPS for an external service that triggers lambda
假设有两个服务A和B,B归我所有。服务 B 需要处理从服务 A 发送的消息。 B 不需要 return 对 A 的任何响应。相反,它只需要向服务 C 发送更新。
现在服务 A 有一个 SNS,它被服务 B 订阅。B 有一个 lambda 函数,由来自 SNS 的消息调用。
服务 A 和 B 达成协议,A 将以 T 的 TPS 向 B 发送通知。服务 B 需要实施 TPS 限制器,以确保遵守协议,如果不遵守则进行限制t.
更准确地说,lambda的每秒调用次数是被限制的。
请注意,lambda 的并发执行限制在这里可能不起作用,因为每个请求可能会在不到一秒的时间内完成。
也可以使用SQS FIFO队列,有T个消息组ID,T个worker,但是这个问题和上面说的一样
有解决这个问题的标准方法吗?
节流使用 API 网关开箱即用。如果超过 TPS,它可用于限制请求。这将为客户端提供 429 状态。
假设有两个服务A和B,B归我所有。服务 B 需要处理从服务 A 发送的消息。 B 不需要 return 对 A 的任何响应。相反,它只需要向服务 C 发送更新。
现在服务 A 有一个 SNS,它被服务 B 订阅。B 有一个 lambda 函数,由来自 SNS 的消息调用。
服务 A 和 B 达成协议,A 将以 T 的 TPS 向 B 发送通知。服务 B 需要实施 TPS 限制器,以确保遵守协议,如果不遵守则进行限制t.
更准确地说,lambda的每秒调用次数是被限制的。
请注意,lambda 的并发执行限制在这里可能不起作用,因为每个请求可能会在不到一秒的时间内完成。
也可以使用SQS FIFO队列,有T个消息组ID,T个worker,但是这个问题和上面说的一样
有解决这个问题的标准方法吗?
节流使用 API 网关开箱即用。如果超过 TPS,它可用于限制请求。这将为客户端提供 429 状态。