AWS Aurora -读副本和写实例之间的负载平衡读操作



Aurora集群有两个端点:一个用于写,另一个用于读(端点包含-ro前缀)。在阅读有关连接管理的文档时,我了解到只读端点平衡了Aurora副本之间的连接。但是它看起来并没有在这个负载平衡中包含writer实例。

是否有一种方法将写入器实例包含在只读(-ro)端点中?在99%的流量都在读取数据的应用程序中,拥有一个具有写入器和一个读取器的集群(以便在写入器故障时具有更好的可用性)听起来像是浪费资源。在这种情况下,写入器将在99%的时间内处于空闲状态。

在同一文档中,有一个关于创建自定义端点的可能性的信息,但我想知道这是否是解决这个问题的唯一可能性。

Aurora中的只读实例主要用作Multi-AZ环境中的故障转移目标。因此,如果选择这种部署,只读实例就不会浪费资源。

然而,你只能连接到你的writer端点,并指向它从你的应用程序写入和读取。存在这样的风险,即读操作使写实例不堪重负,并降低1%写操作的性能。

这里的主要观点是,如果您同时拥有阅读器和写入器实例,那么您应该利用它们,因为您仍然拥有高可用性。

您实际上可以定义一个自定义端点并使用它。它会在两者之间进行负载平衡,所以你可以用它来读取。我们遇到过和你们类似的情况,而且效果很好。来自AWS文档:Aurora集群的自定义端点表示您选择的一组DB实例。当您连接到端点时,Aurora执行负载平衡并选择组中的一个实例来处理连接。您定义此端点引用的实例,并决定端点服务的目的。">

来源:https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Overview.Endpoints.html

最新更新