阿里巴巴中台战略--数据库瓶颈阻碍业务的持续发展

阿里巴巴中台战略

在淘宝平台的改造过程中,通过各个服务中心拥有各自独立数据库的方式,即采用数据垂直分区的方式对业务数据进行分区。确实在很大程度上缓解了当时数据库连接资源少和数据库因为表多、数据多造成的性能等问题。随着淘宝业务的发展,单一服务中心的数据访问压力也必然很快达到单机数据库的承载上限。
对数据库能力的扩展:

  1. 首先实施的是数据库的读写分离。读写分离基本原理是让主数据库处理事务性增删改操作,而从数据库负责查询操作,在数据库的后台会把事务性操作导致的主数据库中的数据同步到集群中的从数据库。
    在这里插入图片描述
    采取读写分离的方式,拓展了数据库对数据读的处理能力,整体上也提升了数据库的读写能力。
    但是这样的架构在主数据库的数据写入能力上依然没法扩展,一旦数据库的写压力比较大时,则对整个平台带来很大的影响。而且数据库的单表的数据量是有限制的,当单表的数据量达到一定数量后数据库性能会出现显著下降的情况。所以简单的读写分离方案并不能满足淘宝业务发展的要求。

  2. 基于数据库分区的思路,当出现单个表的数据量很大的情况,则需要采用水平分区的方式对数据进行拆分,即将同一个表中的不同数据拆分到不同的数据库中。以用户中心,淘宝平台的用户量已接近6亿,所以需要把用户拆分到不同数据库上,如下图,拆分方式可以按照用户id进行hash取模的方式实现用户平均分布在8个(对6亿数据进行拆分的数据库数量会远大于8个,在此为示意)数据库中,确保了单个数据库中保存的数据量在单机数据库能提供良好读写性能的范围之中。
    在这里插入图片描述 单单对数据进行拆分的操作本身不复杂,但在很多实际的业务场景中,不可避免会出现跨库的表join,事务操作,以及数据的操作、排序等情况,而数据进行了拆分后,对于数据的运维管控也提出了更改的要求。