YMU(YouMonitor.Us)网络是遍布全球的网站监测网络,它面临的是海量数据及高并发访问的环境,我们采用LAMJ(类LAMP)架构来进行YMU的开发。LAMP指Linux, Apache, MySQL, Php/Perl的缩写,是目前很多web应用的基础架构。而我们使用JAVA来代替其中的Php/Perl,并增加Tomcat用作动态内容。
本篇介绍一下YMU网络的数据库系统架构,其结构图如下所示:下面从伸缩性、ID方案和可靠性方案三方面来具体介绍。
伸缩性方案
伸缩性是互联网系统的一个重要指标,YMU系统采用scale-out方案,通过把数据分布到不同的数据库服务器来提高数据库系统的总体处理能力。目前系统中存在三种类型的数据库:
- Auth DB:即认证数据库,用于存放Customer, User信息,及一些全局的管理系统;在系统中只有一个Auth DB;
- Running DB:即运行数据库,用于存放Customer相关的运行数据,一般每个Running DB可支持一定数量的Customer。通过增加Running DB,YMU可支撑更多的Customer数目。
- Archive DB:即归档数据库,用于存放Customer的历史运行数据以供查询。通过转移历史数据到Archive DB,Running DB中每个Customer的数据能做到尽量少,从而每个Running DB可支撑尽量多的Customer。随着系统运行时间的推移,我们可以把Archive DB中的更老的数据导出并备份,从而减少Archive DB的数据量。
ID方案
为方便实施数据库的可靠性方案,负载调整等,我们对数据表的主键进行统一管理,以保证在整个YMU系统中,每个对象的ID是唯一的。这样,Customer的运行数据可以在Running DB中方便地进行转移,从而实现负载均衡,达到数据库容量、性能等的最大利用。
可靠性方案
数据库的可靠性对互联网应用至关重要。对MySQL来说,主要有以下两种实现方式:
Replication方案
此时,MySQL配置成master-slave模式,正常情况下,WEB系统访问master数据库中的数据,master数据库中的数据被自动复制到slave数据库中。当master数据库出现问题时,我们需要转换slave数据库为master数据库供WEB系统访问。当master数据库修复后,需要从slave数据库中复制新数据,然后再切换为主数据库运行。另外,正常运行时,slave数据库也可作为只读数据库供WEB系统访问,以减轻master数据库的压力。
HA(High Availability)方案
通过DRBD+HB可以实现高可靠性方案:
- DRBD,即Distributed Replicated Block Device,是LINUX下的第三方工具,它在block层次实现数据的复制功能;
- HB(Heart Beat):是LINUX下的第三方工具,它可监测服务器运行状态,当主数据库出现问题时,可自动切换到备份服务器;它与DRBD结合,可实现MySQL的自动切换功能。
目前YMU系统已经实现Replication方案,下一步我们需要实现HA方案来进一步增强YMU系统的可靠性。
<script src="http://www.google-analytics.com/urchin.js" type="text/javascript"> </script> <script type="text/javascript"> _uacct = "UA-2977865-5"; urchinTracker(); </script>