典型场景 | PolarDB-X 如何支撑SaaS多租户
发布网友
发布时间:2024-10-09 05:20
我来回答
共1个回答
热心网友
时间:2024-11-23 15:54
在当今的数字化时代,平台类应用或系统,特别是那些围绕用户维度(如卖家、品牌、仓库等)展开服务的平台,面临着数据库水平扩展性的重要挑战。当平台的用户发展成为大用户,如大品牌、大卖家、大仓库时,由于其数据量或流量显著超过其他用户,可能会导致数据库访问不稳定,业务服务受到影响。为解决这些问题,SaaS多租户模型被广泛应用,以支持业务系统的稳定性和租户资源的弹性定制。
SaaS多租户模型通过服务多个用户,将每个用户(或每批用户)视为一个租户。在业务系统内,这些租户共享基础设施和平台,但数据被独立隔离,租户拥有自己物理资源单独存储与管理数据。常见的SaaS多租户方案有两种:Partition级与Schema级。尽管Schema级比Partition级隔离更彻底,但后者因为要维护众多Schema而带来较高的运维成本和查询分析成本。而Partition级方案通常依赖中间件分库分表或分布式数据库分区功能,准入门槛较低。
在业务多租户场景中,B公司(正马软件的班牛平台)需要维护多个不同品牌的众多卖家,面临订单量差异大、大品牌可能需要独立资源与数据隔离的问题。若仅通过单机MySQL及分库分表中间件搭建SaaS多租户方案,业务将面临跨机分布式事务问题、Schema一致性问题及租户数据迁移问题,成本高昂。
为解决上述问题,B公司可以采用分布式数据库PolarDB-X 2.0结合非模板化二级分区与Locality能力。非模板化二级分区支持用户定义分区数目及边界值不一致,便于实现不同大小品牌的卖家数据与存储资源的物理隔离。通过Locality,用户可以指定数据库分区的实际存储资源位置,实现数据隔离或均匀分布。借助PolarDB-X的分区管理能力,用户可以便捷地在多租户场景下进行不同运维变更,如添加新卖家、新租户及进行数据重均衡。
综上所述,PolarDB-X为B公司提供了成本低廉且高效的支持多租户的解决方案。通过结合非模板化二级分区与Locality能力,B公司能够实现大品牌与中小品牌的卖家数据及其存储资源的有效隔离。同时,PolarDB-X的分区管理功能满足了用户在多租户场景下的运维需求,实现数据查询、数据安全等关键功能。通过实践总结,这类基于PolarDB-X的SaaS多租户方案在不同的业务场景下具有广泛的应用潜力,不仅限于商家订单管理,还可以应用于仓库物流、直播平台、城市交通监控、气象数据管理等多个领域。