自2024年10月22日起,云数据库RDS MySQL不仅支持数据库代理跨可用区部署和就近访问功能,实现应用程序、代理、数据库全链路跨可用区容灾,以及支持应用程序访问同一可用区的代理节点和数据库,避免跨区访问,有效降低访问延迟。本次新增功能不仅增强了RDS MySQL同城容灾架构的高可用性和稳定性,还进一步提升了系统的灵活性和性能。
上线时间
2024年10月22日
代理部署架构
RDS MySQL数据库代理支持单可用区部署和双可用区部署。
单可用区部署:指所有代理节点位于同一可用区。
双可用区部署:指代理节点位于两个不同可用区,实现跨可用区容灾,不额外收费。
部署形式
代理部署形式包含以下三种:
部署形式1
部署形式2
部署形式3
部署形式 | 可用区 | 代理节点总个数 | 规格限制 | 支持代理类型 |
部署形式1 | 双可用区 | 4 | 同一可用区内,代理节点规格必须一致。 | 独享型 |
部署形式2 | 双可用区 | 2 | 两个节点规格必须一致。 | 独享型、通用型 |
部署形式3 | 单可用区 | 2 | 同一可用区内,代理节点规格必须一致。 | 独享型、通用型 |
开通数据库代理后支持变更代理部署架构,详情请参见变更代理配置。
默认架构及可用区
代理默认架构及可用区遵循以下逻辑:
RDS实例部署形式 | 代理类型 | 默认代理部署形式 | 默认代理可用区 |
单可用区部署 | 独享型 | 部署形式3 | 默认和RDS实例主节点的主可用区保持一致。 |
通用型 | 部署形式3 | ||
双可用区部署 | 独享型 | 部署形式1 |
|
通用型 | 部署形式2 |
代理容灾机制
部署形式1
当发生代理节点级别故障时,故障节点不再承担流量,流量将转发到同一可用区内的其他未发生故障的代理节点。
当发生可用区级别故障时,由于多可用区部署,具备跨可用区容灾的能力,业务流量将转发到未发生故障的可用区代理节点。当故障可用区的代理节点恢复后,新增业务流量将转发到恢复后的代理节点中,存量长连接路由保持不变,等待自动消亡。
说明如果开通了就近访问功能,出于可用性高于访问延迟的考虑,当发生可用区级别故障时就近访问功能可能会失效,优先保障代理实例整体的可用性。
部署形式2
由于代理是双可用区两节点部署,代理节点级别的故障等同于可用区级别的故障,当发生故障时,业务流量将转发到另一个未发生故障的可用区内的代理节点。
部署形式3
当发生代理节点级别故障时,故障节点不再承担流量,业务流量将全部由同一可用区内的另一个未发生故障的代理节点承担。
当发生可用区级别故障时,代理将无法提供服务,需要等可用区机房故障恢复,或手动变更代理到跨可用区部署形式。
就近访问功能简介
当数据库代理为双可用区部署时,开通云数据库RDS MySQL的代理就近访问功能,支持用户指定应用程序连接到同一可用区内的代理节点,通过将同可用区的数据库节点添加至该代理连接地址(原始代理端点)中,可确保所有业务流量在单一可用区内完成路由,最大限度地减少了访问延迟,如下图所示。