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