网站架构演化路线,从小到大怎么成长的

news/2024/5/20 4:45:14/文章来源:https://blog.csdn.net/belalds/article/details/79685932

首先我们要明确一个基本的认知,网站的大小并不是根本,我们的根本着眼点在于网站服务于业务的开展。随着业务规模的调整,同时进行网站规模,从而促进业务发展。

大型网站的特点有高并发,大流量,高可用,海量数据等。我们一起回顾下网站的演化路线。

1、初始阶段的网站架构

初始阶段都比较简单,通常一台服务器就可以搞定一个网站了,看图。

2、应用服务和数据服务分离

随着网站业务的发展,一台服务器逐渐不能满足需求;这时候就需要将应用和数据分离,如图。

3、使用缓存改善网站性能

毫无疑问,现在的网站基本上都会使用缓存,即:80%的业务访问都会集中在20%的数据上。

4、使用应用服务器集群改善网站的并发处理能力

因为单一应用服务器能够处理的请求连接有限,在网站访问高峰时期,应用服务器会成为整个网站的瓶颈。因此使用负载均衡处理器势在必然。通过负载均衡调度服务器,可将来自浏览器的访问请求分发到应用的集群中的任何一台服务器上。

5、数据库读写分离

当用户达到一定规模后,数据库因为负载压力过高而成为网站的瓶颈。而目前主流的数据库都提供主从热备功能,通过配置两台数据库主从关系,可以将一台数据库的数据更新同步到另一台服务器上。网站利用数据库这一功能实现数据库读写分离,从而改善数据库负载压力。

6、使用反向代理和CDN加上网站相应

提高网站的访问速度,主要手段有使用CDN和反向代理。

CDN和反向代理的基本原理都是缓存,区别在于CDN部署在网络提供商的机房,而反向代理是部署在网站的中心机房,当用户请求到达中心机房后,首先访问的反向代理,如果反向代理缓存着用户请求的资源,则直接返回给用户。

7、使用分布式文件系统和分布式数据库系统

任何强大的单一服务器都满足不了大型网站持续增长的业务需求。

分布式数据库时网站数据库拆分的最后手段,只用在单表数据规模非常大的时候才使用。不到不得已时,网站更常用的数据库拆分手段是业务拆分,将不同业务的数据部署在不同的物理服务器上

8、使用NoSQL和搜索引擎

搜素引擎也基本已经形成现在大型网站必须提供的功能了,网站需要采用一些非关系数据库技术如NoSQL和非数据库查询技术如搜索引擎。

9、业务拆分

大型网站为了应对日益复杂的业务场景,通过使用分而治之的手段将真个网站业务拆分成不同的产品线。

具体到技术上,也会根据产品线话费,将一个网站拆分成许多不同的应用,每个应用独立部署维护。应用之间可以通过超链接建立管理,也可以通过消息队列进行数据分发,当然最多的还是通过访问同一个数据存储系统来构成一个关联的完整系统。

10、分布式服务

由于每一个应用系统都需要执行许多相同的业务操作,比如用户管理,session管理,那么可以将这些公用的业务提取出来,独立部署。



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

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

相关文章

记一次真实的网站被黑经历

前言 距离上次被DDOS已经有10天左右的时间,距离上上次已经记不起具体那一天了,每一次都这么不了了只。然而近期一次相对持久的,我觉得有必要静下心来,分享一下被黑的那段经历。 在叙述经历之前,先简单的介绍一下服务器…

在HTTPS网站安装百度分享按钮代码及其SEO外链作用

百度分享按钮,可以帮用户实现一键将网站内容分享到第三方网站,但它的功能与作用远远不止便于分享。 今天,小小课堂网为大家带来的是百度分享按钮代码安装及对网站SEO优化外链的效果。希望对大家有所帮助。一、百度分享代码的安装 1、登录百度…

精美案例展示:立体动感的视差滚动效果网站作品

视差滚动(Parallax Scrolling)是新兴的网页设计技术,通过让多层背景以不同的速度移动来形成立体的运动视差效果,虽然纯属视觉效果,但在内容滚动时形成的视觉体验非常出色!今天这篇文章就与大家分享35个运用…

国外网站设计:20佳应用大照片做背景的优秀案例

定义网站基调和风格的一种简单方式就是使用大图片背景(Big Background Image),在使用这种大图片的时候,为了让大背景图片能够和网站的其它内容很好的融合在一起,你需要考虑很多事情,否则可能会导致网站内容…

fikker反向代理服务器的网站缓存加速特别说明

2019独角兽企业重金招聘Python工程师标准>>> 1、特别说明: Fikker 只缓存以 GET 方法请求并且源站返回状态为 200 OK的页面。以其它方法请求或源站返回状态非 200 OK 的页面都不会被缓存。 2、配置说明: 缓存地址URL:输入要缓存…

WordPress最新网站漏洞利用及修复解决方案

WordPress最新版本存在远程代码注入获取SHELL漏洞,在2019年,该网站漏洞影响的版本是WordPress5.0,甚至是致命的一个漏洞,包括目前的wordpress 4.8.6 以及wordpress 4.9.6版本,可以删除网站上的任意文件,影响…

网站实现扫描二维码关注微信公众号,实现自动登陆

1、OAuth2.0简介 OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。 …

11 Nginx网站服务的基本构建

Nginx网站服务的基本构建 一关于Nginx服务 Nginx简介 Nginx (发音[engine x]) 是一款高性能、轻量级Web服务软件; 始用于俄罗斯的Rambler.ru站点 市场占有率迅速跃居第三位 官方网站 http://www.nginx.org/ Nginx与Apache的优缺点 1 Apache对客户端的响应是支持并发…

《阿勇java建站教程》2.3-数据库特殊应用

2.3-数据库特殊应用大家好,我是阿勇,感谢大家阅读这篇文章,并且希望大家能将《阿勇java建站教程》全部看完!本节继上节内容(T-SQL)之后继续说说数据库相关的内容。这节说的是数据库的“特殊”应用&#xff…

最新WordPress插件漏洞,影响超过700万个网站

研究人员已经披露了多个WordPress插件中的漏洞,如果成功利用这些漏洞,则攻击者可以在某些情况下运行任意代码并接管网站。 这些缺陷已在Elementor(一个用于超过700万个网站的网站构建器插件)和WP Super Cache(用于服务…

WordPress网站成为Linux恶意软件目标: 19个插件和主题缺陷

WordPress网站正成为一种以前未知的Linux恶意软件的目标,该恶意软件利用二十多个插件和主题中的缺陷来破坏易受攻击的系统。 “如果网站使用此类附加组件的过时版本,缺乏关键修复,目标网页就会注入恶意JavaScript,” 知名网络安全…

比较好的java网站[推荐]

为什么80%的码农都做不了架构师?>>> 比较好的java网站[推荐] 博客分类: java JavaASP.net.netVB.NETVC 1. The Source for Java Technology Collaboration(JAVA开发的官方网站) http://www.java.net/ - 外文 2. jGuru: FAQ Home Page 推荐…

学编程没人带?推荐10个免费学编程的最佳网站给你

学习编程是开启你的移动端应用开发和Web开发职业生涯的一种绝佳方式和必要途径。本文将分享10个有助你学编程的最佳网站。 1.Codecademy 它是学编程最流行的网站之一。事实上,2000万人已经使用这个网站来学习编程了。你只需要注册一个免费帐户,便可以开…

SEO完全手册之title优化

在我的博客发布了《花钱最少的推广方式之SEO》文章后,受到了很多看官的关注,再次万分感谢大家!从今天开始,我会每天更新一篇SEO优化的东西,也希望大家喜欢。在这里,我就不阐明搜索引擎工作的原理了&#xf…

宝塔面板部署django网站

一、 导出你的django网站所需要的依赖 在你网站根目录(即manage.py所在的目录)执行下列命令 pip freeze > requirements.txt之后,会生成一个requirements.txt文件,表示导出成功 二、 上传网站代码 新建一个用于存储django网站代码的目录&#xff…

windows-配置php网站内部的git操作服务

一、测试配置 代码如下所示,如果git没有加入到环境变量的情况下 $cmd "cd /wwwroot/sqlite && git pull 2>&1";exec($cmd, $result);dd($result);设置好目录,运行网站,此时发现执行git status 就能正常访问&#…

网络安全系列之七 网站提权

上传了webshell之后,我们的目的是获取服务器的系统管理员权限,这也是******的最终目的。“H4ck Door”是一个很牛的大马,提供了很多功能,我比较喜欢的是执行cmd命令来提权。首先执行“net user”命令查看服务器有哪些用户&#xf…

扩展 jQuery EasyUI Datagrid 数据行鼠标悬停/离开事件(onMouseOver/onMouseOut)

客户需求: jQuery EasyUI Datagrid 用户列表鼠标悬停/离开数据行时显示人员头像(onMouseOver/onMouseOut) 如图所示,Datagrid 鼠标悬停/离开数据行时切换了不同的样式显示: 此时用谷歌开发者工具审查鼠标悬停行元素时发…

爬取网站要登录?46行代码解决问题,python爬虫随心所欲

当你在爬某些网站的时候,需要你登录才可以获取数据,咋整?莫慌,把这几招传授给你,让你以后随心所欲的爬! 一:Cookie大法 你平常网站浏览的时候,是不是发现你只要登录一次&#xff0c…

25行代码,教你用python爬取网站的MV视频

喜欢编程,热爱分享,希望能结交更多志同道合的朋友,一起在学习Python的道路上走得更远! 本文教大家如何用python爬取网站的mv视频,话不多说直接上代码! 爬取网站的地址:http://www.170mv.com/m…