t21*_*573 9 database-replication amazon-web-services amazon-rds
我为 RDS 实例创建了一个只读副本,AWS 是否自动处理负载平衡,或者需要在代码中进行其他配置或实现?如果有的话有参考吗?
编辑以获得更多说明 当我创建只读副本时,它将如何工作并处理请求?我问是因为它给了我一个端点,所以必须有一种实现才能正常工作,对吧?(与主 RDS 一起)
不幸的是,Aurora 集群的负载平衡非常有限。首先,它在建立连接时平衡连接,并且在任何情况下都不会重新平衡它们,除非连接被丢弃并重新打开(但这也有限制,请参见下文)。
其次,当 Aurora 确实分配连接时,它不会考虑已与每个只读副本建立的连接数量。
第三,它使用 TTL 为 1 秒的 DNS 交换过程来实现。由于上述所有原因,不幸的是,当某些副本收到比其他副本多得多的连接时,这是很常见的情况。更不用说缺乏用于关闭等的干燥实例的机制。
由于上述所有限制和高度不平衡的负载,我们fairlink为 MySQL 和 PostgreSQL 开发了 JDBC 驱动程序(或者更确切地说是封装驱动程序)。您可以在这里找到它: https: //github.com/DiceTechnology/dice-fairlink
Amazon通过特定的负载平衡端点为 RDS Aurora 数据库集群提供连接负载平衡。对于任何其他 RDS 数据库配置,您必须自己处理连接。
编辑以获得更多说明当我创建只读副本时,它将如何工作并处理请求?我问是因为它给了我一个端点,所以必须有一种实现才能正常工作,对吧?(与主 RDS 一起)
此时,您只有 2 个数据库服务器,并且每个服务器都有一个可以连接到的单独端点 URL。亚马逊正在为您保持这些服务器之间的数据同步,仅此而已。这里没有发生负载平衡。您似乎假设这里发生的事情比实际情况要多。如果您使用 Aurora 以外的 RDS 数据库引擎,则必须自行实现负载平衡。
| 归档时间: |
|
| 查看次数: |
11180 次 |
| 最近记录: |