很多互联网公司做到一定阶段,都会出现单表数据量到达瓶颈,如何解决?除了添加缓存等减轻数据库压力的方案,目前来说大部分公司都会走到分库分表这一步,但互联网服务一般都是7*24不停服的,那我们的分库分表也必然也要达成这样的要求?那我们如何来达成呢?小面是作者的一些思考,如果错漏,可以指出,大家共同探讨。
首先,我们需要考虑哪些方面:
(1)服务:分库分表后,数据服务必然不同于以往的服务
(2)数据库:库表地址变更,单表数据分散到多个表中,甚至多个库中
(3)上线后如何小范围内测试,不至于有问题影响所有用户
(4)回滚方案
根据以下内容,我们可以考虑一下方案:
(1)搭建一套新服务,隔离老服务,如dubbo的rpc,我们可以通过新增分组的方式
(2)数据库需要新增数据库,并通过数据同步工具,将正在线上运行的数据实时同步到新数据库中去,同时在同步的过程中要进行分库分表的逻辑计算
(3)小范围内的测试,可以通过nginx脚本进行ab测,只对内测用户可见新服务
(4)回滚可以直接将新服务下掉即可