加载中 ...
首页 > 新闻资讯 > 经验心得 正文

大型网站架构演变和知识体系

2019-03-23 07:30:42 来源:沈阳软件公司 作者:沈阳软件开发

  之前也有一些先容大型网站架构演变的文章,例如LiveJournal的、ebay的,都是很是值得参考的,不外感受他们讲的更多的是每次演变的效果,而没有很详细的讲为什么需要做这样的演变,再加上迩来感受有不少同砚都很难明确为什么一个网站需要那么庞大的手艺,于是有了写这篇文章的想法,在这篇文章中将论述一个通俗的网站生长成大型网站历程中的一种较为典型的架构演变历程和所需掌握的知识系统,希望能给想从事互联网行业的同砚一点开端的观点,文中的差池之处也请列位多给点建议,让本文真正起到抛砖引玉的效果。

  架构演变第一步:物理分散webserver和数据库

  最最先,由于某些想法,于是在互联网上搭建了一个网站,这个时间甚至有可能主机都是租借的,但由于这篇文章我们只关注架构的演变历程,因此就假设这个时间 已经是托管了一台主机,而且有一定的带宽了,这个时间由于网站具备了一定的特色,吸引了部门人会见,逐渐你发现系统的压力越来越高,响应速率越来越慢,而这个时间比力显着的是数据库和应用相互影响,应用出问题了,数据库也很容易泛起问题,而数据库出问题的时间,应用也容易出问题,于是进入了第一步演变阶段:将应用和数据库从物理上分散,酿成了两台机械,这个时间手艺上没有什么新的要求,但你发现确实起到效果了,系统又恢复到以前的响应速率了,而且支持住了更高的流量,而且不会由于数据库和应用形成相互的影响。

  看看这一步完成后系统的图示:

  

  这一步涉及到了这些知识系统:这一步架构演变对手艺上的知识系统基本没有要求。

  架构演变第二步:增添页面缓存

  好景不长,随着会见的人越来越多,你发现响应速率又最先变慢了,查找缘故原由,发现是会见数据库的操作太多,导致数据毗连竞争猛烈,以是响应变慢,但数据库毗连又不能开太多,否则数据库机械压力会很高,因此思量接纳缓存机制来淘汰数据库毗连资源的竞争和对数据库读的压力,这个时间首先也许会选择接纳squid等类似的机制来将系统中相对静态的页面(例如一两天才会有更新的页面)举行缓存(固然,也可以接纳将页面静态化的方案),这样程序上可以不做修改,就能够很好的淘汰对webserver的压力以及淘汰数据库毗连资源的竞争。OK,于是最先接纳squid来做相对静态的页面的缓存。

  看看这一步完成后系统的图示:

  

  这一步涉及到了这些知识系统:前端页面缓存手艺,例如squid,如想用好的话还得深入掌握下squid的实现方式以及缓存的失效算法等。

  架构演变第三步:增添页面片断缓存

  增添了squid做缓存后,整系统统的速率确实是提升了,webserver的压力也最先下降了,但随着会见量的增添,发现系统又最先变的有些慢了,在尝到了squid之类的动态缓存带来的利益后,最先想能不能让现在那些动态页面里相对静态的部门也缓存起来呢,因此思量接纳类似ESI之类的页面片断缓存计谋。OK,于是最先接纳ESI来做动态页面中相对静态的片断部门的缓存。

  看看这一步完成后系统的图示:

  

  这一步涉及到了这些知识系统:页面片断缓存手艺,例如ESI等,想用好的话同样需要掌设计软件握ESI的实现方式等;

  架构演变第四步:数据缓存

  在接纳ESI之类的手艺再次提高了系统的缓存效果后,系统的压力确实进一步降低了,但同样,随着会见量的增添,系统照旧最先变慢,经由查找,可能会发现系统中存在一些重复获取数据信息的地方,像获取用户信息等,这个时间最先思量是不是可以将这些数据信息也缓存起来呢,于是将这些数据缓存到当地内存,改变完毕后,完全切合预期,系统的响应速率又恢复了,数据库的压力也再度降低了不少。

“沈阳软件公司”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与

我们联系删除或处理,客服QQ:55506560,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同

其观点或证实其内容的真实性。