大型网站架构演变

news/2024/5/15 0:50:48/文章来源:https://blog.csdn.net/weixin_34038293/article/details/85849752

第二遍阅读《大型网站技术架构》,真心觉得书中的内容很好,推荐大家去阅读。下面是书中对大型网站架构演变过程的介绍。 
对于一个小型企业级网站,通常的架构如下图: 
 

随着用户数量的增多,可以将应用服务与数据服务分离以提高性能,如下图: 
 

用户继续增多,数据库的压力太大,此时考虑使用缓存,如下图:(缓存在网站性能优化中是一种很重要的手段,可以极大的减轻缓存所在位置后端的压力,缓存分为本地缓存和分布式缓存服务器,前者更快但容量有限,后者理论上容量可以无限伸缩。分布式缓存的一个典型例子是MemCached)。 
 


增加缓存的做法缓解了数据服务器的压力,接着考虑缓解应用服务器的压力,将应用部署到集群中。在这个集群的前端添加负载均衡服务器以进行负载均衡,如下图:(把应用部署到集群当中会涉及到一个session对象的分享问题,留在以后博客中讨论) 
 


使用集群的方式缓解了应用服务器的压力,接着又得解决数据服务器的压力。采用数据库读写分离,如下图:(应用服务器在写数据的时候访问主数据库,在读数据的时候访问从数据库,主数据库将数据实时的同步到从数据库)
 


数据库读写分离缓解了数据服务器的压力,接下来考虑解决应用服务器的压力。在负载均很服务器加入反向代理服务器和CDN服务器,如下图:(CDN叫做内容分发网络,它通过将用户请求转发到距离最近的缓存服务器上,从而直接返回结果。CDN可以说是网站在网络提供商机房中部署的缓存系统,反向代理服务是网站在自己的机房部署的缓存系统) 


CDN和反向代理缓解了应用服务器的压力,接着又得解决数据服务器的压力。随着网站业务的不断增长,数据库虽然采用了读写分离机制,仍然不能满足性能需要。考虑使用分布式文件系统和分布式数据库系统,如图:(分布式数据库系统是数据库提升的最后手段,只有在单张表非常庞大的时候才使用。如果单张表不是很大,我们使用业务分库,即不同业务的数据存储到不同的数据库服务器上) 
 


为网站添加NoSQL和搜索引擎,如下图:(应用服务器通过统一数据管理模块访问各种数据源) 
 

大型网站的最终架构,如下图: 
 

上面是一个网站从最初的一台服务器逐渐发展壮大的过程,书中作者在最后有一段总结:技术是用来解决业务问题的,而业务的问题,也可以通过业务的手段来解决。这句话我的理解,架构没有好坏之分,适合业务的就是最好的,同时在设计架构时不要局限于技术。 

还是在推荐大家读一读原书《大型网站技术架构 核心原理与技术分析》 李智慧著,个人很喜欢。 

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

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

相关文章

mysql 数据库初始化安装_MYSQL初始化 - MYSQL数据库安装教程全攻略(图)_数据库技术_Linux公社-Linux系统门户网站...

二、MySQL初始化:MYSQL初始化主要完成管理员密码设定和测试数据库连接是否正常等操作。第一步:进入c:\usr\mysql\bin目录,这个是我们刚刚安装时选择的目录。(如图7)图7:进入c:\usr\mysql\bin目录第二步:找到该目录下的名为winmysqladmin.exe的程序&#…

华为服务器如何设置网站dns,设置为正确的DNS 服务器地址

设置为正确的DNS 服务器地址 内容精选换一换域名的DNS服务器定义了域名用于解析的权威DNS服务器。通过华为云注册成功的域名默认使用华为云DNS进行解析,详细内容,请参见华为云DNS对用户提供域名服务的DNS是什么?。若您选择非华为云DNS进行域名…

《流量的秘密: Google Analytics网站分析与优化技巧(第3版)》一1.2 网站分析可以提供的信息...

本节书摘来自异步社区《流量的秘密: Google Analytics网站分析与优化技巧(第3版)》一书中的第1章,第1.2节,作者【英】Brian Clifton,更多章节内容可以访问云栖社区“异步社区”公众号查看 1.2 网站分析可以提供的信息 流量的秘密: Google Ana…

css grid随页面大小_CSS Grid 系列(下)-使用Grid布局构建网站首页

by Chris House译者:若愚老师更好的阅读体验?可在 饥人谷技术博客 查看原文要看懂这篇文章,推荐先简单过一遍姊妹篇 CSS Grid 系列(上)-Grid布局完整指南当我开始一个项目,并开始计划如何布局主页时,我的大脑复现出浮动…

程序页面闪退 进程还在_企业想开发线上业务,那么该做网站、APP、小程序还是公众号?...

很多企业想开发线上业务,那么该做网站、APP、小程序还是公众号?这是很多企业都会遇到的问题。你可能会问,既然都有那么多的选择那么多方向,我们为什么不全做了?当然,如果企业财大气粗,效果肯定不…

seo日常工作表_SEO主要做什么工作?SEO优化入门之网站的日常维护

《种豆南山下——网站的日常维护》--作者:推云阿航日常维护:对于新站:1、未收录的每日提交链接,已经收录的每日投诉快照,直至更新。2、快照一旦更新,就需要先查一下网站site和title的排名,判断权…

从主机访问虚拟机中的网站系列教程(VBox篇)

最近大家开始搭上我们这个学期的关键——Siteweaver,为了这个东西大家无所不用其极,有人换系统,有人开始学习用虚拟机。用虚拟机的同学会发现,我们在使用虚拟机搭建网站的时候,怎么可以方便地从主机和局域网访问到虚拟…

asp的网站能封装成app吗_在线网站封装APP评测:性价比最高的竟然是它?

如果你有一个网站,想给网站加个壳,封装成一个app,点开之后显示的还是网站,可以实现吗?我的回答是肯定的,这就是网站封装APP。现在APP的开发成本很高,很多热倾向于通过封装打包网站来实现“快速开…

linux文件的链接可分为6,linux中有几种文件类型_网站服务器运行维护,linux,文件类型...

linux下编译程序找不到头文件_网站服务器运行维护linux下编译程序找不到头文件的解决方法是:1、首先执行【find / -name xxx.h】命令,查找路径;2、然后执行【gcc test.c -o test -I /usr/local/include/xxx】命令即可。1、普通文件( 数据文件…

linux nginx php网站渗透,Linux系统下nginx+php清理服务器网站日志怎么弄

Linux系统下nginxphp清理服务器网站日志怎么弄发布时间:2020-10-16 15:01:59来源:亿速云阅读:78作者:小新这篇文章主要介绍了Linux系统下nginxphp清理服务器网站日志怎么弄,具有一定借鉴价值,需要的朋友可以…

onmouseover 事件

, , , , , , , , , , , , , to , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 支持该事件的 JavaScript 对象:layer, link实例 1在下面的例子中,我们将在用户把鼠标指针移动到图像上时显示一个对话框: onmouseover"…

Nginx配置HTTPS证书网站

前提: 1、主机需要先安装openssl 2、编译安装nginx时,要加上--with-http_ssl_module 这个ssl模块 现在开始配置:(我当时配置时,主机已安装了openssl,但编译时没有加载http_ssl_module模块,所以…

nicetool好工具_上进青年研习社丨这6个工具合集网站,抵过上百个软件!

文丨小渔不知道你们有没有这样的经历:为了一些小的需求,在手机上或是电脑上下了一堆软件。虽然用过觉得也挺好用的,但是平时的使用频率真的不高啊。等你把它们都卸载了,过了一段时间突然又需要用它了。所以,今天小渔要…

快站模板 连接mysql_如何轻松建站?站点一键部署搭建(详细教程)

来越多的人选择个人建站,个人站长虽然门槛很低,但是有些朋友觉得Linux服务器各种复杂的命令脚本让自己没法搭建环境。今天就给大家推荐一款使用方便、功能强大的快速建站工具——云帮手,支持 Linux 与 Windows 系统,可一键配置搭建…

查看 db2 正在 运行的sql_介绍两个刷 SQL 题的网站

今天有朋友在群里问到:在哪可以刷 SQL 题?其实,要刷 SQL 题,对着《SQL COOKBOOK》、《SQL 经典实例》这两本书,把所有实例从头到尾全部实现一遍就很厉害了。不过,我想她的本意是想知道有没有关于 SQL 的 On…

html使用bootstrap无效果,[0失败]手把手教你用Bootstrap做个人网站

作为一个纯小白手残星人,总想自己做一个网站,Wix,Strikingly这一类的可视化建站的工具,自由度不高,付费贼贵,自己做的又不好看又费时间,听说bootstrap这种前端框架可以自己做网页,之…

实验六:MYSQL+PHP的网站搭建

实验目的:掌握MYSQLPHP的网站的搭建过程实验准备:一台Server,一台Client实验前的准备:搭建一台web服务器(过程省略)实验步骤:步骤一1.安装PHP数据包解压php-5.1.4-Win32这个解压包,把…

沙发家具网站源码_2020年(双十二)沙发选购全攻略~~

沙发算是家庭装修最昂贵的家具之一,当然我特别建议选购时亲自试用感受它们,由于这些物品尺寸的特殊性,网购最担心的就是购买后自己如果不喜欢,退货麻烦以及昂贵的运费。现在由于网上购物的便利,以及网上的风格多样化&a…

java项目修改html文件类型,爱了!Guide哥手把手教你搭建一个文档类型的网站!免费且高速!...

这篇文章 Guide 哥就手把手教大家搭建一个像下面这样的文档类型的网站,你可以用来当做项目的说明文档,也还可以当做自己专属的知识小仓库。一.前置条件确保自己电脑下载安装了 NPM 并且使用这个命令: npm i docsify-cli -g安装了 docsify-cli…

LNMP动态网站部署架构 Linux + Nginx 配置Nginx服务

1、解压、编译、生成、安装Nginx服务程序的源码文件Perl语言软件包pcre2、openssl软件包安装/usr/local/openssl/bin目录添加到PATH环境变量中。3、安装zlib软件包4、创建一个用于执行Nginx服务程序的账户。5、在使用命令编译Nginx服务程序时,需要设置特别多的参数&…