小编Aka*_*dal的帖子

Aurora自动缩放的实例中没有发生相等的连接分配

我们正在使用AWS Aurora作为数据库运行基于REST API的春季启动应用程序。我们的应用程序连接到只读的Aurora MySQL RDS实例。我们正在对其进行负载测试。最初,我们只有一个数据库,并且具有自动缩放功能,这是在CPU较高的情况下触发的。现在,我们期望如果通过一个数据库实例获得一些X吞吐量,那么在自动缩放发生时,我们应该获得大约1.8倍的吞吐量,并且连接应该与新创建的数据库实例平均分配。但这没有发生,相反,两个数据库实例上的数据库连接都不稳定。因此,我们的负载无法平均分配,并且无法获得理想的吞吐量。有时一个数据库正在100%CPU上运行,而另一个数据库仍在20%CPU上运行,几分钟后将其反转。

Driver - com.mysql.jdbc.driver
Maximum active connections=100
Max age = 300000
Initial pool size = 10
Run Code Online (Sandbox Code Playgroud)

Tomcat jdbc池用于连接池

注意:1)我们还禁用了jvm网络DNS缓存。2)我们还尝试每5分钟刷新一次数据库连接,即使活动的连接也是如此。3)我们尝试了AWS提出的所有建议,但没有任何效果。4)我们甚至编写了一个lambda代码来在出现新的数据库实例时更新Route 53,以避免集群端点缓存,但仍然存在相同的问题。任何人都可以请帮忙的最佳实践是什么,因为目前我们还不能将其投入生产。

database database-connection amazon-web-services amazon-aurora aws-aurora

6
推荐指数
1
解决办法
331
查看次数