互联网大型网站架构演变——上

news/2024/5/11 1:21:31/文章来源:https://blog.csdn.net/lingshengxueyuan/article/details/106426025

每天十五分钟,熟读一个技术点,水滴石穿,一切只为渴望更优秀的你!

————零声学院

架构演变第一步:物理分离 webserver 和数据库
最开始,由于某些想法,于是在互联网上搭建了一个网站,这个时候甚至有可能主机都是租
借的,但由于这篇文章我们只关注架构的演变历程,因此就假设这个时候 已 经是托管了一
台主机,并且有一定的带宽了,这个时候由于网站具备了一定的特色,吸引了部分人访问,
逐渐你发现系统的压力越来越高,响应速度越来越慢,而这 个时候比较明显的是数据库和
应用互相影响,应用出问题了,数据库也很容易出现问题,而数据库出问题的时候,应用也
容易出问题,于是进入了第一步演变阶段: 将应用和数据库从物理上分离,变成了两台机
器,这个时候技术上没有什么新的要求,但你发现确实起到效果了,系统又恢复到以前的响
应速度了,并且支撑住了更 高的流量,并且不会因为数据库和应用形成互相的影响。
看看这一步完成后系统的图示:
在这里插入图片描述
这一步涉及到了这些知识体系:
这一步架构演变对技术上的知识体系基本没有要求。

架构演变第二步:增加页面缓存
好景不长,随着访问的人越来越多,你发现响应速度又开始变慢了,查找原因,发现是访问
数据库的操作太多,导致数据连接竞争激烈,所以响应变慢,但数据库连 接又不能开太多,
否则数据库机器压力会很高,因此考虑采用缓存机制来减少数据库连接资源的竞争和对数据
库读的压力,这个时候首先也许会选择采用 squid 等类似的机制来将系统中相对静态的页面
(例如一两天才会有更新的页面)进行缓存(当然,也可以采用将页面静态化的方案),这
样程序上可以不做修改,就能够 很好的减少对 webserver 的压力以及减少数据库连接资源的
竞争,OK,于是开始采用 squid 来做相对静态的页面的缓存。

看看这一步完成后系统的图示:
在这里插入图片描述
这一步涉及到了这些知识体系:
前端页面缓存技术,例如 squid,如想用好的话还得深入掌握下 squid 的实现方式以及缓存的 失效算法等。
架构演变第三步:增加页面片段缓存
增加了 squid 做缓存后,整体系统的速度确实是提升了,webserver 的压力也开始下降了,但
随着访问量的增加,发现系统又开始变的有些慢了,在尝 到了 squid 之类的动态缓存带来的
好处后,开始想能不能让现在那些动态页面里相对静态的部分也缓存起来呢,因此考虑采用
类似 ESI 之类的页面片段缓存策略,OK,于是开始采用 ESI 来做动态页面中相对静态的片
段部分的缓存。
看看这一步完成后系统的图示:
在这里插入图片描述
这一步涉及到了这些知识体系:
页面片段缓存技术,例如 ESI 等,想用好的话同样需要掌握 ESI 的实现方式等;
架构演变第四步:数据缓存
在采用 ESI 之类的技术再次提高了系统的缓存效果后,系统的压力确实进一步降低了,但同
样,随着访问量的增加,系统还是开始变慢,经过查找,可能会发现系 统中存在一些重复
获取数据信息的地方,像获取用户信息等,这个时候开始考虑是不是可以将这些数据信息也
缓存起来呢,于是将这些数据缓存到本地内存,改变完毕后,完全符合预期,系统的响应速
度又恢复了,数据库的压力也再度降低了不少。
看看这一步完成后系统的图示:
在这里插入图片描述
这一步涉及到了这些知识体系:
缓存技术,包括像 Map 数据结构、缓存算法、所选用的框架本身的实现机制等。
架构演变第五步: 增加 webserver
好景不长,发现随着系统访问量的再度增加,webserver 机器的压力在高峰期会上升到比较
高,这个时候开始考虑增加一台 webserver,这也是为了同时解决可用性的问题,避免单台 的 webserver down 机的话就没法使用了,在做了这些考虑后,决定增加一台 webserver,增
加一台 webserver 时,会碰到一些问题,典型的有:
1、如何让访问分配到这两台机器上,这个时候通常会考虑的方案是 Apache 自带的负载均衡
方案,或 LVS 这类的软件负载均衡方案;
2、如何保持状态信息的同步,例如用户 session 等,这个时候会考虑的方案有写入数据库、
写入存储、cookie 或同步 session 信息等机制等;
3、如何保持数据缓存信息的同步,例如之前缓存的用户数据等,这个时候通常会考虑的机
制有缓存同步或分布式缓存;
4、如何让上传文件这些类似的功能继续正常,这个时候通常会考虑的机制是使用共享文件
系统或存储等;
在解决了这些问题后,终于是把 webserver 增加为了两台,系统终于是又恢复到了以往的速
度。
看看这一步完成后系统的图示:
在这里插入图片描述
这一步涉及到了这些知识体系:
负载均衡技术(包括但不限于硬件负载均衡、软件负载均衡、负载算法、linux 转发协议、
所选用的技术的实现细节等)、主备技术(包括但不限于 ARP 欺骗、linux heart-beat 等)、
状态信息或缓存同步技术(包括但不限于 Cookie 技术、UDP 协议、状态信息广播、所选用 的缓存同步技术的实现细节等)、共享文件技术(包括但不限于 NFS 等)、存储技术(包
括但不限于存储设备等)。

每日分享15分钟技术摘要选读,关注一波,一起保持学习动力!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_728684.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站seo优化需要注意的关键要点

网站的优化推广是一项需要长期作战的工作,一个网站的优化效果不是一两天就能有成效;一个优秀的seo大神也不是一朝半夕就能练成的。不管是网站的优化效果,还是想要成为一名优秀的SEOer,都是需要一个过程的。网站优化你需要知道的是…

前端技术资讯网站

欢迎来到前端的世界,让我们一起在活跃的前端社区中自由学习吧!1.HOW TO KEEP UP TO DATE ON FRONT-END TECHNOLOGIES - 如何跟上前端开发技术的最新前沿 好资源,共勉!2.Github 从实际项目中学习!3.Stack Overflow 著名…

好奇心日报网站和App停更3个月

【TechWeb】5月28日,好奇心日报官方微博发布消息称,网站和App自2019年5月28日零时起停止更新3个月。 去年8月,好奇心日报也曾停更所有网络传播平台,进行全面彻底整改。 以下为好奇心日报声明内容: 好奇心日报的网站和A…

attn_matrix_ATTN波特兰人-先驱法院广场推出了新网站

attn_matrixHey Portland folks, Pioneer Courthouse Square - Portlands Living Room - launched their new site today. 嗨,波特兰人,先锋法院广场-波特兰的客厅-今天启动了他们的新网站。 I did their BrickFinder application in C# and VB.NET a wh…

单机至亿级流量大型网站系统架构的演进过程

阶段一、单机构建网站 网站的初期,我们经常会在单机上跑我们所有的程序和软件。此时我们使用一个容器,如tomcat、jetty、jboos,然后直接使用JSP/servlet技术,或者使用一些开源的框架如mavenspringstructhibernate、mavenspringspr…

防止恶意解析——禁止通过IP直接访问网站

一、什么是恶意解析一般情况下,要使域名能访问到网站需要两步,第一步,将域名解析到网站所在的主机,第二步,在web服务器中将域名与相应的网站绑定。但是,如果通过主机IP能直接访问某网站,那么把域…

沿用Python+Flask+Mysql的web建设技术开发网站

1 系统概要说明 1.1开发目的 如今音乐已经成为人们尤其是年轻人的日常必备。走路,坐车,逛街,我们都能看到戴着耳机听音乐的人。古风曲、日韩风、欧美风、hippop等等各种音乐风格多样。随着媒体的发展,微博微信公众号媒体采访等等的…

逻辑漏洞-客户端验证的邮箱-Web渗透实例之中国教育部青少年普法网站逻辑漏洞...

转载自:http://www.zmnhssn.com/?post61 漏洞地址:https://user.qspfw.com 用户登陆界面 具体漏洞地址: 用户密码找回界面:https://user.qspfw.com/page/user/findpwd/forget_pwd.do 这里可以确认网站有没有这个用户,这个用户…

JavaWeb网站性能优化的相关技术

2019独角兽企业重金招聘Python工程师标准>>> 一、提高服务器并发处理能力 我们总是希望一台服务器在单位时间内能处理的请求越多越好,这也成了web服务器的能力高低的关键所在。服务器之所以可以同时处理多个请求,在于操作系统通过多执行流体系…

(转)3款优秀的移动webAPP网站在线测试工具

原文:原文地址 目前适配各个终端的需求越来越强烈呢?比如我们APP项目上线之后,需要一个宣传推广专题页,这个页面当然最好是采取响应式布局来完成。因为需要来推广和下载我们的APP。 无论用户是电脑打开,还是移动端打开…

vs2017 asp.net 网站发布问题 (发布路径下含源码文件)

使用vs2010版本,网站发布后会自动将源码发不为.dll程序集,但vs2017需要进行设置,其他版本没有试过。 vs2017网站发布: 1. 2. 这里给一个你想用的名字,之后它会出现在你的程序文件(不是发布路径)…

小程序https请求,http网站升到https

最近开发小程序,因为以前只写过小程序的前端没注意接口,现在才发现原来所有的接口都必须使用https协议了,马上研究了一波,顺便也想给自己的博客升成https的。 申请免费证书 哈哈没办法就是喜欢免费的。。。真是煞费苦心找了很久。…

dd 0x7ffe0000_当您尝试启动网站时出现“意外的错误0x8ffe2740”错误信息

dd 0x7ffe0000Mental note: Skype will grab port 80 if it starts up before the IIS Web Server leading me to "Unexpected Error 0x8ffe2740 Occurred." 精神注意:如果在IIS Web服务器引导我出现“意外错误0x8ffe2740发生”之前启动, Skyp…

中小型网站架构分析及优化

先看网站架构图: 以上网站架构广泛运用中大型网站中,本文从架构每一层分析所用主流技术和解决手段,有助于初入网站运维朋友们,进一步对网站架构认识,从而自己形成一套架构概念。 第一层:CDN 国内网络分布主…

网站流量日志数据自定义采集

分布式集群爬虫小架构 离线hadoop分析数据整体流转图 网站流量日志数据自定义采集 网站流量日志数据自定义采集 1、系统的意义 网站流量数据统计分析,可以帮助网站管理员、运营人员、推广人员等获取网站流量信息,并从流量来源、网站内容、网站访客特性等…

中断数周之后 微软网站恢复销售华为笔记本电脑

【TechWeb】6月18日消息,据美国财经网站CNBC报道,当地时间周一,微软表示,在中断数周之后,已恢复在其网站上销售华为笔记本电脑。 现在,包括MateBook 13、MateBook和MateBook X Pro在内的华为笔记本电脑都再…

IIs 网站应用程序与虚拟目录的区别及高级应用说明(文件分布式存储方案)

对于IIS网站,大伙用的比较多,就不啰嗦了。今天和说说大伙比较少使用的"IIS应用程序”和虚拟目录的区别及高级应用场景,文件分布式存储方案。 1:IIS网站:一个网站,基本就是一个站点,绑定N个…

Python小白我用了38行代码把一个网站的pdf资料都下了下来

在网上找书,无意间发现了一个网站,上面有很多电子书。试着打开了几本,感觉很不错,就下了下来。可惜我的人性太贪婪了,想把他们都下下来,哪怕放到磁盘上生灰。至少可以满足对知识的焦虑感。 怎么办&#xff…

opensearch_将OpenSearch添加到您的网站并进入浏览器的搜索框

opensearchI was over at http://search.twitter.com earlier today and I noticed the Search Box in Firefox had a blue lit-up dealie: 我今天早些时候在http://search.twitter.com结束了,我注意到Firefox中的搜索框有一个蓝色的亮点。 Hm...OK. Whats that? I…

手把手教你搭建一个属于自己的网站

​ 其实去年就写过一篇,当时写的很简短,算是基础的基础,今天就再来一起分享下网站建设方面的知识。看过之前我写的那篇的可以直接从基础篇备案看起。 ps:以下内容为了便于理解,部分是本人自己理解总结,非官…