当系统用户进入了高速增长期时,即便是对数据进行分库分表,但数据库的容量,还有表的数据量也总会达到天花板。当现有数据库达到承受极限时,就需要增加新服务器节点数量进行横向扩容。
首先来思考一下,横向扩展会有什么技术难度?
数据迁移问题
分片规则改变
数据同步、时间点、数据一致性
遇到上述问题时,我们可以使用以下两种方案:
1、停机扩容
这是一种很多人初期都会使用的方案,尤其是初期只有几台数据库的时候。停机扩容的具体步骤如下:
1)站点发布一个公告,例如:“为了为广大用户提供更好的服务,本站点将在今晚00:00-2:00之间升级,给您带来不便抱歉";
2)时间到了,停止所有对外服务;
3)新增n个数据库,然后写一个数据迁移程序,将原有x个库的数据导入到最新的y个库中。比如分片规则由%x变为%y;
4)数据迁移完成,修改数据库服务配置,原来x个库的配置升级为y个库的配置
5)重启服务,连接新库重新对外提供服务
6)回滚方案:万一数据迁移失败,需要将配置和数据回滚,改天再挂公告。
优点:简单
缺点:
1)停止服务ÿ