![AWS 应用程序负载均衡器重复请求](https://linux22.com/image/740588/AWS%20%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1%E5%99%A8%E9%87%8D%E5%A4%8D%E8%AF%B7%E6%B1%82.png)
有谁经历过使用应用程序负载均衡器向多个 EC2 实例发送重复请求吗?
我们在 EC2 上有一个由 ALB 支持的 API,最近注意到一些请求被发送到多个实例并导致问题,因为某些操作(例如付款)发生不止一次。
API 是围绕 .net core 构建的,但不要认为这很重要。该问题最近才出现,但并非总是发生。
有人见过这样的事情吗?我见过 2011/2012 年左右的一些旧问题,但没有见过最近的。
答案1
使能够ALB 访问日志(它们被传送至 S3)并进行分析。
更有可能的是,您会发现实际上是您的客户端多次发送请求 - 无论是通过用户交互(例如,用户在等待付款处理时重新加载页面)还是由您的客户端应用程序引起(JS 等待响应超时并重新发送请求)。日志会告诉您。
希望有帮助:)
答案2
我们还观察到经典 ELB(而不是 ALB)也存在同样的情况。我们有证据表明,偶尔(在流量密集的环境中,每天会出现十几次)两个实例会收到完全相同的请求,并且只有一个这些实例的信息保存在 ELB 访问日志中。
此外,根据我们的记录,这种情况已经发生了至少 3 个月(甚至可能是永远),但自 7 月中旬以来可能变得更加严重。