高并发高负载数据库架构策略
在 WEB 网站的规模从小到大不断扩展的过程中,数据库的访问压力也不断的增加,数据库
的架构也需要动态扩展,在数据库的扩展过程基本上包含如下几步,每一个扩展都可以比上
一步骤的部署方式的性能得到数量级的提升。
1. WEB 应用和数据库部署在同一台服务器上
一般的小规模的网站采用这种方式,用户量、数据量、并发访问量都比较小,否则单台服务
器无法承受,并且在遇到性能瓶颈的时候升级硬件所需要的费用非常高昂,在访问量增加的
时候,应用程序和数据库都来抢占有限的系统资源,很快就又会遇到性能问题。
2. WEB 应用和数据库部署在各自独立的服务器上
web 应用和数据库分开部署,WEB 应用服务器和数据库服务器各司其职,在系统访问量增
加的时候可以分别升级应用服务器和数据库服务器,这种部署方式是一般小规模网站的典型
部署方式。在将应用程序进行性能优化并且使用数据库对象缓存策略的情况下,可以承载较
大的访问量,比如 2000 用户,200 个并发,百万级别的数据量。
3. 数据库服务器采用集群方式部署(比如 Oracle 的一个数据库多个
实例的情况)
数据库集群方式能承担的负载是比较大的,数据库物理介质为一个磁盘阵列,多个数据库实
例以虚拟 IP 方式向外部应用服务器提供数据库连接服务。这种部署方式基本上可以满足绝
大多数的常见 WEB 应用,但是还是不能满足大用户量、高负载、数据库读写访问非常频繁
的应用。
4. 数据库采用主从部署方式
在面向大众用户的博客、论谈、交友、CMS 等系统中,有上百万的用户,有上千万的数据
量,存在众多的数据库查询操作,也有较多的数据库写操作,并且在多数情况下都是读操作
远大于写操作的。在这个时候,假如能将数据库的读写操作分离的话,对于系统来讲是一个
很大的提高啦。数据库的主从部署方式就走到我们面前啦。
主从复制: 几乎所有的主流数据库都支持复制,这是进行数据库简单扩展的基本手段。下
面以 Mysql 为例来说明,它支持主从复制,配置也并不复杂,只需要开启主服务器上的二进
制日志以及在主服务器和从服务器上分别进行简单的配置和授权。Mysql 的主从复制是依据
主服务器的二进制日志文件进行的,主服务器日志中记录的操作会在从服务器上重放,从而
实现复制,所以主服务器必须开启二进制日志,自动记录所有对于主数据库的更新操作,从
服务器再定时到主服务器取得二进制日志文件进行重放则完成了数据的复制。主从复制也用