使用 Amazon RDS Proxy 提升应用程序可用性

Amazon RDS Proxy 的最大优势,在于显著缩短数据库故障转移之后的应用程序恢复时间。RDS Proxy能够同时支持MySQL与PostgreSQL引擎,但在本文中,我们将单纯使用MySQL测试工作负载向大家展示RDS Proxy如何在故障转移之后,将Amazon Aurora MySQL客户端的恢复时间缩短达79%,并将Amazon RDS for MySQL的故障恢复时间缩短达32%。本文还将阐述RDS Proxy如何帮助客户端摆脱读取器终端节点-写入器终端节点转换问题,同时克服客户端配置中的优化不充分状况。接下来,我们将讨论在故障转移期间闲置连接保留机制的支持下,RDS Proxy如何通过活动连接监控与客户端连接池机制带来更出色的计划内与计划外故障转移效果。最后,本文还将与大家分享一些关于客户端配置的最佳实践。

背景

RDS Proxy可以被放置在Amazon RDS for MySQL/PostgreSQL以及Aurora MySQL/PostgreSQL数据库之前。它将帮助用户管理应用程序对数据库的访问,同时提供连接池、多路复用以及良好的故障转移功能。除了进一步扩展数据库的连接限制之外,RDS Proxy还能够管理应用程序的突发连接与请求。本文将着重介绍RDS Proxy在故障转移层面的优势。

所谓故障转移,就是当主数据库实例无法正常访问时,由另一实例接管并提升为新的主实例的过程。故障转移会断开客户端连接。对于由管理操作(例如滚动升级)引发的故障转移,我们将其称为计划内故障转移;而由于真实故障引发的故障转移,则属于计划外故障转移。无论如何,我们都需要尽可能缩短停机时间以最大程度减少客户端中断造成的影响。

Amazon RDS提供多个高可用性选项,RDS Proxy则为各个选项提供故障转移恢复支持。Amazon RDS多可用区选项能够在主配置与辅助配置之间实现同步复制。Aurora则提供两种高可用性选项,最多支持15个异步副本、以及多主模式。全部Aurora副本都处于只读访问模式,大家可以选定其中的任何一个副本节点并将其提升为集群的新主节点,而无需担心引发数据丢失。Aurora多主模式则可提供多条活动写入通道。

配合这些选项,在发生故障转移时,客户端需要首先检测连接故障、发现新的主节点,并尽快与其重新连接。在RDS Proxy的协助下,应用程序能够摆脱与故障转移相关的复杂性因素,从而实现更快的恢复速度(仅需3秒)。Aurora中的故障转移机制速度更快,其中DNS的传播延迟就成了影响整体故障转移时间的核心因素。RDS Proxy会主动监控数据库实例,并自动将客户端接入正确的目标。此外,它还会在数据库故障转移期间继续保留闲置的客户端连接(而非将其丢弃)。所谓闲置连接,是指那些不包含重要请求的连接。

Aurora故障转移

经过 100次内部测试执行之后,我们将Aurora集群直连模式与通过RDS Proxy建立的Aurora集群代理模式进行了故障转移时间比较。

下表对结果进行了总结,单位为毫秒:

测试 最小</
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值