多主集群(Limitless)

更新时间: 2025-03-05 10:11:17

为了解决在一写多读架构下出现的写性能瓶颈,PolarDB MySQL版推出了多主集群(Limitless)。该集群通过多个主节点实现了从一写多读架构到多写多读架构的升级。此方案主要针对SaaS多租户、游戏、电商等高并发读写的应用场景。

多主集群(Limitless)的架构图如下:多主架构

集群中所有的数据文件都存放在共享分布式存储(PolarStore)中,各个RW节点通过分布式文件系统(PolarFileSystem)共享底层存储(PolarStore)中的数据文件。通过集群地址访问整个集群,数据库代理会自动转发SQL命令到正确的RW节点。

核心优势和能力

  • 秒级横向写扩展

    支持不同库/表在不同计算节点并发写入,最多支持在63个节点同时写入数据。不同数据库可以在不同计算节点秒级动态调度,极大提升整体的并发读写能力。

  • 多主互备(省去备节点)

    如果某个主节点发生故障,可秒级切换到其他低流量主节点,同时由于没有额外的用于热备的闲置资源,成本降低一半。

  • 全局只读节点

    可以在全局只读节点上读取到所有写节点的数据,方便执行汇聚库的请求。详情请参见全局只读节点

适用场景

多主集群(Limitless)主要面向SaaS多租户、游戏、电商等高并发读写的应用场景。

  • SaaS多租户场景:满足高并发性能需求,实现租户间负载均衡

    场景特点:租户的数据库数量变化较快,负载变化较大,需要经常在不同的实例之间调配数据库资源,以便达到最佳用户体验。

    解决方案:多主集群(Limitless)可帮助客户秒级将租户的数据库在不同RW节点间进行切换,或秒级增加新的RW节点承担突发流量,从而实现负载均衡。

  • 世界服游戏及电商场景:分钟级的扩缩容,适应快速增长的业务请求

    场景特点:世界服游戏及电商场景,一般采用基于中间件或者业务的分库分表场景方案。在版本更新和大促的时候往往需要快速的弹性扩容数倍的集群容量,在活动和大促结束后又需要快速缩容。然而,传统集群的扩缩容都需要迁移数据,非常复杂。

    解决方案:多主集群(Limitless)的秒级横向扩展和透明路由功能,结合中间件或业务分库分表可以实现透明的秒级扩展,将原来数天的扩容变为分钟级。

  • 分服游戏场景:更好的性能和扩展能力,灵活扩缩容

    场景特点:在游戏成长期,数据库负载较大,且呈现为不断增长的趋势特点。通常表现为在游戏成长期期间,会不断增加数据库,导致RW节点负荷也不断增加。而在游戏衰退期,数据库负载逐渐减少,数据库会不断合并,导致RW节点的负荷也呈减少趋势。

    解决方案:游戏成长期,可快速将部分数据库切换到新的RW节点,实现负载均衡;游戏衰退期,可快速将数据库聚合到少量RW节点,快速降低运作成本。

版本限制

  • 数据库引擎MySQL 8.0

  • 暂不支持由集群版直接转换为多主集群(Limitless)。产品系列升级,请参见大版本升级

性能提升情况

经测试,随着集群中的数据库切换至更多的主节点(RW)上,集群整体并发读写能力几乎呈线性提升。测试示例如下:

  • 测试背景:集群包含8个数据库,8个RW节点。

  • 测试过程:初始情况下,8个数据库全部负载在其中一个RW节点上,然后对所有数据库同步执行相同的压力测试。压测期间,将8个数据库分别平均切换到2个RW节点、4个RW节点、8个RW节点上,观察集群整体的性能变化趋势。

  • 性能变化趋势如下,以QPS为例:性能提升

从上图可以看出,随着数据库切换至更多的RW上时,集群整体并发读写能力得到了极大的提升,几乎呈现为线性提升。

节点规格与费用

开始使用

  1. 购买多主集群(Limitless)集群

  2. 配置集群的基本信息,例如创建数据库账号设置集群白名单连接数据库等。

  3. 创建数据库

    多主集群(Limitless)限制每个数据库或数据对象的数据只能通过一个节点写入。在创建数据库时,您可以指定RW节点,或将loose_innodb_mm_default_master_id参数的值调整为0,让系统随机选择一个RW节点进行数据库创建。

  4. 通过SELECT语句查询数据。

    在查询数据时,无需指定RW节点,数据库代理会自动选择正确的RW节点执行查询。

更多信息,请参见使用说明

上一篇: 设置热备节点 下一篇: 使用说明
阿里云首页 云原生数据库 PolarDB 相关技术圈