一个小网站的架构演变案例
2015-10-08 14:24
543 查看
1.网站架构的前提(或者说需求)某公司是一电子商务的网站,因为线下家具建材项目的推广需求,从而有了公司的这个线上网站,在这里贴一张公司的网站架构图。
总体来说网站规模不是太大,注册人数在150万左右,并发最大也就1500,图上架构没有压力!
2.公司网站架构的发展a.起初只有一台服务器,放在公司内部这里称为架构0(如图)(出口用防火墙进行NAT转换)
注:相信大家对这个应该很熟悉,我们学习的时候都这样做,用一台虚拟机搭一个LAMP平台做测试与开始用,只不过公司里的服务器不是虚拟机,是一台性能比较好的服务器而已,公司用的是(Dell 的R610)!
b.经过一段时间的发展,注册的人数多了一台服务器快顶不住了,其实就是访问特别慢慢,访问的人多了服务器负载比较大,当时的注册人数已经人10万了,特别是搞活动的时候,CPU经常在80%以上,我们想办法重新做架构(架构1如下图)
其实也很简单,就是分离了,Web服务器和数据库,分为两服务器都是Dell R610。有朋友会说了,你们用的是什么Web服务器啊,数据库用的是什么啊,和大家想的一样,就是Apache和Mysql。这个架构用的很多!
c.下面又要爆发了,注册的人数又多了,其实是推广部门牛啊。架构又变了(架构2如下图)
大家也知道电子商务网站,就是卖东西,买的人也比较少,看的人比较多,特别是像这种做家具建材的,一台服务器压力也挺大的,于是在前面加了一台反向代理服器,缓存一些静态文件(html,images,js……),有效的缓解了压力。反向代理服务器是用Squid做的,硬件配置也不是多好,CPU用的是至强单核的,内存大一点8G!
d.上面的架构用了快半年,发现网站访问又开始慢了,于是不得不考虑重新更改架构了(架构3如下图)
我们把那台Squid反向代理服务器做成了LB(负载均衡服务器),又在后面加了台Web服务器,已经有四台服务器了,有点规模了!LB用的是大名鼎鼎的LVS啊,相信不少朋友都知道!
e.过一段赶时间发现,LB,Web,都没有问题,可数据库有点顶不住了,我们就和开发人员讨论,把数据库做成主从数据库,来减轻数据库的压力!(架构4如下图)
f.过一段时间又发现了问题,我们发现两台Web服务器之间的数据同步有问题,为了根本解决这个问题,我们加了台NFS服务器(架构5如下图)
g.有一天我们发现网站不能访问了,急了,后发现是LB服务器死机了,于是加了台备份机,就是我们常说的LVS+Keepalived!(架构6如下图)
现在服务器已经有八台了,我们又加了台监控机做服务器监控与备份,把重要数据备份到监控机上!(架构7如下图)
3.总结我们这架构用了以下知识:a.负载均衡 LVS+Keepalivesb.Web 服务器 Apachec.Mysql数据库 Mysql 主从数据库d.文件服器 主NFS,备NFSe.监制+备份 Cacti与shell脚本
书籍:http://book.360buy.com/11053131.htmlhttp://book.360buy.com/11144229.htmlhttp://book.360buy.com/11144229.htmlhttp://book.360buy.com/10156177.html#nonehttp://book.360buy.com/10067428.html
总体来说网站规模不是太大,注册人数在150万左右,并发最大也就1500,图上架构没有压力!
2.公司网站架构的发展a.起初只有一台服务器,放在公司内部这里称为架构0(如图)(出口用防火墙进行NAT转换)
注:相信大家对这个应该很熟悉,我们学习的时候都这样做,用一台虚拟机搭一个LAMP平台做测试与开始用,只不过公司里的服务器不是虚拟机,是一台性能比较好的服务器而已,公司用的是(Dell 的R610)!
b.经过一段时间的发展,注册的人数多了一台服务器快顶不住了,其实就是访问特别慢慢,访问的人多了服务器负载比较大,当时的注册人数已经人10万了,特别是搞活动的时候,CPU经常在80%以上,我们想办法重新做架构(架构1如下图)
其实也很简单,就是分离了,Web服务器和数据库,分为两服务器都是Dell R610。有朋友会说了,你们用的是什么Web服务器啊,数据库用的是什么啊,和大家想的一样,就是Apache和Mysql。这个架构用的很多!
c.下面又要爆发了,注册的人数又多了,其实是推广部门牛啊。架构又变了(架构2如下图)
大家也知道电子商务网站,就是卖东西,买的人也比较少,看的人比较多,特别是像这种做家具建材的,一台服务器压力也挺大的,于是在前面加了一台反向代理服器,缓存一些静态文件(html,images,js……),有效的缓解了压力。反向代理服务器是用Squid做的,硬件配置也不是多好,CPU用的是至强单核的,内存大一点8G!
d.上面的架构用了快半年,发现网站访问又开始慢了,于是不得不考虑重新更改架构了(架构3如下图)
我们把那台Squid反向代理服务器做成了LB(负载均衡服务器),又在后面加了台Web服务器,已经有四台服务器了,有点规模了!LB用的是大名鼎鼎的LVS啊,相信不少朋友都知道!
e.过一段赶时间发现,LB,Web,都没有问题,可数据库有点顶不住了,我们就和开发人员讨论,把数据库做成主从数据库,来减轻数据库的压力!(架构4如下图)
f.过一段时间又发现了问题,我们发现两台Web服务器之间的数据同步有问题,为了根本解决这个问题,我们加了台NFS服务器(架构5如下图)
g.有一天我们发现网站不能访问了,急了,后发现是LB服务器死机了,于是加了台备份机,就是我们常说的LVS+Keepalived!(架构6如下图)
现在服务器已经有八台了,我们又加了台监控机做服务器监控与备份,把重要数据备份到监控机上!(架构7如下图)
3.总结我们这架构用了以下知识:a.负载均衡 LVS+Keepalivesb.Web 服务器 Apachec.Mysql数据库 Mysql 主从数据库d.文件服器 主NFS,备NFSe.监制+备份 Cacti与shell脚本
书籍:http://book.360buy.com/11053131.htmlhttp://book.360buy.com/11144229.htmlhttp://book.360buy.com/11144229.htmlhttp://book.360buy.com/10156177.html#nonehttp://book.360buy.com/10067428.html
相关文章推荐
- 优酷、YouTube、Twitter及JustinTV几个视频网站的架构
- Android开发时遇到问题比较实用的工具和网站
- iOS 开发常用网站
- Java Web项目性能测试 - JMeter测试网站吞吐量、反应时间百分比、流量
- 大型网站架构演化
- 大型网站架构模式
- 使用VS2012自带数据库发布网站
- 浅谈闪存控制器架构
- 游戏引擎架构 && windows 核心编程
- 没有广告的美女图片分享网站
- 网站论坛同步用户,整合api,实现…
- 网站论坛同步用户,整合api,实现…
- 网站文件夹命名规则
- 英语阅读网站推荐
- 网站关键词优化--细说长尾6关键词的特征
- 公司网站首页遇到的问题
- 通过读取淘宝API的优化 来考虑高并发网站的架构讨论
- 淘宝网采用什么技术架构来实现网站高负载的
- C# 通过WebService方式 IIS发布网站 上传文件到服务器
- 大型网站之分布式会话管理