You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

RDS扩容时.NET API数据库连接错误排查求助

问题描述

我们有部署在ECS上的.NET API,通过Entity Framework Core从Aurora PostgreSQL Serverless v1集群查询数据。正常负载下服务运行正常,但流量激增触发RDS集群扩容(增加ACU)时,API会出现大量连接错误:

An error occurred using the connection to database '"ourdatabasename"' on server '"tcp://ourcluster.region.rds.amazonaws.com:5432"'

基础设施架构

CloudFront >> Load Balancer >> ECS Fargate >> RDS Aurora PostgreSQL Serverless v1

技术栈

-.NET 6 API(Linux编译版本)
-Entity Framework Core 6.x
-Npgsql.EntityFrameworkCore.PostgreSQL 6.x
-PostgreSQL 10.18

我们通过k6压力测试(绕过CloudFront缓存)可稳定复现问题,只要触发RDS集群扩容就会出现错误。AWS支持工单回复称这是实现问题而非基础设施问题。过去一年我们通过将RDS配置为几乎无需扩容的高容量来规避,但这会浪费成本,违背Serverless设计初衷,因此需要找到根本原因并解决。

已尝试的解决方案

  • 测试Serverless v2:扩容机制不同(同一VM占用更多主机资源),但问题更严重——v1在约400请求/秒时出错,v2仅150请求/秒就触发错误。
  • 启用EnableRetryOnFailure:略有帮助但效果有限,目前保留Npgsql默认配置。
  • 调整连接字符串的Maximum Pool Size参数:设为300时情况略有改善,但未彻底解决问题。
  • 调整ECS/ALB扩容策略或预扩容:无任何改善。

未尝试的方案

  • RDS Proxy:据称可解决连接池问题,但不确定是否为连接池导致的问题,且不愿依赖额外黑盒服务、成本较高,若社区普遍推荐则会尝试。
  • RDS Data API:无需管理连接,但需重写所有EF代码,且Serverless v2暂不支持,暂不考虑。

求助需求

希望明确问题根源、错误来源,制定故障转移机制或实现系统优雅降级。如有可行的配置方案也欢迎提供,后续会将问题原因分享给社区。可补充更多信息。

内容的提问来源于stack exchange,提问作者Martijn Kooij

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 12:10:31