从事了这个行业也有好多年了,看过了很多博文,大多都谈架构,从最开始的堆机器、野蛮扩展,服务器承受不住就扩充服务器时代,到做集群,大家都去关注每个细节怎么去做,却从来不总结为什么要这样做,也讲不清楚为什么这样做,这就导致了运维和开发的鸿沟,有时候就形成了坚固的壁垒,难以沟通,直到大家看到的devops的兴起,敏捷系统的诞生。

最初网站的雏形,所有业务都集中在单台数据库上,访问量也一般,更不谈什么并发了,经济、技术、资金投入都是瓶颈,就出现了单机业务,就是宕机也显得毫无紧张,别提监控告警系统。

在国内互联网大浪潮之下,很快用户量爬升,单机数据库已经不堪重负了,于是就迎来了缓存时代和应用业务和数据库分离,似的这种现象得到了缓解,原理图如下:

业务部门反映效果达到预期,但是用户量每天海量爬升,逐渐的单机数据库靠别了它的历史舞台,大家就开始主从架构,采用了读写分离,而就是这样的架构导致,大多数业务都是读多写少,所以野蛮扩张,slave的服务器也没有按照业务评估的读写比例,来决定是否增加slave服务器,数据库层面得到了短暂的缓解,应用程序层面也出现了瓶颈,由于访问量递增,早期程序员水平有限写的代码没有规范,人员流动性大,也很少有人去维护和优化;就产生了野蛮扩展,不停的加服务器的情景。

随着需求越来越多,集群的概念也迅速的提上日程主要体现出一下层面:
1、数据库实现横向扩展、站内搜索依赖全文索引
2、Java领域用的较多的是Lucene、Solr等
3、由于引入了高可用,网站架构能够承载日均百万访问量,告一段落。

打赏作者

Leave a Reply

Your email address will not be published.