大型站点架构体系的演变(上)

本文讲述了站点从初期到中型规模的架构扩展过程,包括高速开发、缓存使用、数据库读写分离、应用层面的横向扩展等内容,并介绍了如何解决扩展过程中遇到的技术难题。

互联网上有非常多关于站点架构的各种分享,有些主要是从运维和基础架构的角度去分析的(堆机器,做集群),太关注技术细节实现,普通的开发者基本看不太懂。

本文上篇将主要介绍大型站点基础架构的扩展,下篇则重点从应用程序的角度去介绍站点架构的扩展和演变。


草根时期,高速开发站点并上线。

当然,通常仅仅是先试水。用户规模也没有形成,经济能力和投入也非常有限。


有一定的业务量和用户规模了。想提升站点速度,于是,缓存出场了。


市场反响还不错,用户量每天在增长。数据库疯狂读写,逐渐发现一台server快撑不住了。于是。决定把DB和APP做分离。


单台数据库也感觉快撑不住了。一般都会尝试做“读写分离”。因为大部分互联网“读多写少”的特性所决定的。Salve的台数,取决于按业务评估的读写比例。



数据库层面是缓解了,可是应用程序层面也出现了瓶颈,因为訪问量增大,加上早期程序猿水平有限写的代码也非常烂。人员流动性也大,非常难去维护和优化。所以。非经常常使用的办法还是“堆机器”。



加机器谁都会加。关键是加完之后得有效果,加完之后可能会引发一些问题。比如非经常见的:页面输出缓存和本地缓存的问题,Session保存的问题......


到这里,已经基本做到了DB层面和应用层面的横向扩展了,可以開始关注一些其他方面。比如:站内搜索的精准度,对DB的依赖,開始引入全文索引。

Java领域用的较多的是Lucene、Solr等,而php领域用的比較多的是sphinx/coreseek。


到眼下为止。一个可以承载日均百万级訪问量的中型站点架构基本介绍完了。

当然,每一步扩展里面都会有非常多技术实现的细节。兴许有时间会写文章单独去剖析那些细节。

下篇我们继续。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值