一、缘起

(1)并发量大,流量大的互联网架构,一般来说,数据库上层都有一个服务层,服务层记录了“业务库名”与“数据库实例”的映射关系,通过数据库连接池向数据库路由sql语句以执行:

image.png

如上图:服务层配置用户库user对应的数据库实例物理位置为ip(其实是一个内网域名)。

(2)随着数据量的增大,数据要进行水平切分,分库后将数据分布到不同的数据库实例(甚至物理机器)上,以达到降低数据量,增强性能的扩容目的:

image.png

如上图:用户库user分布在两个实例上,ip0和ip1,服务层通过用户标识uid取模的方式进行寻库路由,模2余0的访问ip0上的user库,模2余1的访问ip1上的user库。

关于数据库水平切分,垂直切分的更多细节,详见《一分钟掌握数据库垂直拆分》 。

(3)互联网架构需要保证数据库高可用,常见的一种方式,使用双主同步+keepalived

收藏 打印