基于 TiDB 多租户技术完成资源池化实现多业务统一集群和资源隔离,适用于多业务统一管理、统一视图场景。
解决方案关键词
多业务统一集群、负载隔离、小库归集、一栈式 HTAP
行业挑战
随着数字化转型的加速,企业的业务系统数量快速增长。传统架构中一个业务对应单个数据库实例,并使用一主多从部署模式提高数据可靠性。如下图架构所示,支付、商品、订单三个中小型业务分别使用独立数据库实例,并采用一主一从架构,此时需要使用 6 台数据库服务器。
现有 MySQL 集群支持多业务的模式存在以下痛点:
-
硬件利用率低:
- 业务使用 MySQL 主从架构,需要多台服务器, MySQL 备库读写请求少,硬件资源利用率低;
- 数据库一般会预留资源以应对流量高峰,非业务高峰期有大量闲置资源无法有效利用;
- 不同业务繁忙时间不一样,部分业务高峰时无法借用低峰业务数据库的资源;
- 扩展性差:当业务量和数据量增长时,单机 MySQL 不足以支撑业务负载;
数据孤岛:数据分散在多个 MySQL 集群,无法实现跨库关联分析和跨业务实时数据洞察。
解决方案
使用 TiDB 多租户技术完成多业务系统使用统一 TiDB 集群,确保不同业务负载隔离,再利用 TiFlash 的 实时 HTAP 能力,实现跨业务数据关联查询,方案架构图如下:
- 根据多个业务负载分别设置不同资源组和 RU(Request Unit),当 TiDB 整体资源繁忙时实现不同业务基于 RU 限流和负载隔离;
- 为错峰且重要业务设置资源组 BURSTABLE 属性,实现跨业务错峰资源借用;
- 设置重要业务优先级为 HIGH,确保集群优先保证重要业务资源可用;
- 使用 TiFlash 完成跨业务统一视图和实时数据分析需求;
方案优势
-
节约硬件成本
- MySQL 主从架构从节点利用率低,TiDB 多活架构所有节点平等且资源利用率高;
- 当 TiDB 统一资源池资源不够时可以随时在线扩展,无需为业务预留太多闲置资源,提升整体资源利用率;
- 借助多租户 BURSTABLE 特性,实现不同业务资源借用,进一步提升整体资源利用率。
-
降低开发和运维成本
- TiDB对应用透明无侵入,可降低开发成本,缩短业务上线周期。从管理多套 MySQL 到管理一套 TiDB 集群,大幅降低了数据库运维成本。
-
解决数据孤岛问题
- 使用 TiFlash 支持跨业务强一致性数据查询,支持统一视图、实时数据分析、实时风控等业务。