YMU网络的数据库系统架构介绍

YMU(YouMonitor.Us网络是遍布全球的网站监测网络,它面临的是海量数据及高并发访问的环境,我们采用LAMJ(LAMP)架构来进行YMU的开发。LAMPLinux, 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 DBYMU可支撑更多的Customer数目。
  • Archive DB:即归档数据库,用于存放Customer的历史运行数据以供查询。通过转移历史数据到Archive DBRunning 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数据库的压力。

HAHigh 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>
本文主要总结了在Ubuntu10下常用Java Web应用软件的安装,特别是LNMJ Web(Linux+Nginx+Mysql+Java Tomcat)架构和LAMJ Web(Linux+Apache+Mysql+Java Tomcat)架构下的软件安装。为进一步配置和实现LNMJ和LAMJ架构(负载均衡与集中式Memcached集群)进行前期准备。本文记录了安装过程经常出现的错误,并提供了解决办法,具有很好的实用性,是居家旅行必备之良品。 主要内容有: VirtualBox4.0的安装和配置 包括VirtualBox下网络环境的配置,和主机文件的共享,主机和虚拟机剪贴板共享等内容。 http://peterwei.javaeye.com/blog/968815 Ubuntu10下JDK1.6安装 http://peterwei.javaeye.com/blog/968758 Ubuntu10下Tomcat7安装 http://peterwei.javaeye.com/blog/968774 Ubuntu10下Eclipse3.6安装 http://peterwei.javaeye.com/blog/975129 Ubuntu10下Nginx-0.8.54安装 http://peterwei.javaeye.com/blog/969991 Ubuntu10下Apache-2.2安装 http://peterwei.javaeye.com/blog/975122 Ubuntu10下Mysql-5.1.56安装 http://peterwei.javaeye.com/blog/976422 Ubuntu10下Memcached-1.4.5安装 http://peterwei.javaeye.com/blog/974445 Ubuntu10下SSH2协议安装 http://peterwei.javaeye.com/blog/976944 Ubuntu10下Subversion安装 http://peterwei.javaeye.com/blog/976916 Ubuntu10下中文输入法安装 http://peterwei.javaeye.com/blog/976908 Ubuntu Linux实用命令 http://peterwei.javaeye.com/blog/976950 当然,最后也提供了PDF格式的附件统一下载,方便大家查看。下载后觉得不错的,不要吝啬你的掌声。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值