大型网站技术架构(一)大型网站架构演化

news/2024/5/12 8:56:16/文章来源:https://blog.csdn.net/weixin_33828101/article/details/92650193

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

 看完了有一本书,就应该有所收获,有所总结,最近把《大型网站技术架构》一书给看完了,给人的印象实在深刻,再加上之前也搞过书本上讲的反向代理和负载均衡以及session独立存储和缓存,因此书本看起来还是挺通俗易懂的,而且作者李智慧给人的印象(书本)也挺深刻的,我从这本书中也学到了许多,了解的许多,但是理解还是比较抽象的,写出来才是真正的理解,因此准备写一系列的博客来介绍和加深理解大型网站技术架构。

        说道大型网站,就的先说大型网站的特点:高并发,大流量,高可用,海量数据等。下面就说说大型网站的架构演化过程吧。

1、初始阶段的网站架构

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

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

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

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

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

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

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

 

5、数据库读写分离

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

 

 

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

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

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

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

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

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

 

8、使用NoSQL和搜索引擎

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

 

9、业务拆分

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

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

 

 

10、分布式服务

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

转载于:https://my.oschina.net/zhanghaiyang/blog/599396

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

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

相关文章

大型网站技术架构(二)架构模式

2019独角兽企业重金招聘Python工程师标准>>> 每一个模式描述了一个在我们周围不断重复发生的问题及该问题解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复工作。 所谓网站架构模式即为了解决大型网站面临的高并发访问、海量数据、高可靠…

5个适合零基础练习的Python刷题网站

知乎上有人问,有没有适合新手练习 Python 的做题类网站? 根据我刷题找资料的经验,推荐以下5个Python练习网站,都很良心 1、Github 这不是一个专门的刷题网站,而是代码托管平台,里面有数百万个Python项目…

爬虫python学习代码记录3-抓取某电商网站的商品数据

Python3 爬虫、数据清洗与可视化实战 第4章 大型爬虫案例:抓取某电商网站的商品数据 目录 抓取某电商网站的商品数据 封装代码,提高可读性 写一个程序test.py定时监控运行结果 爬虫效率优化 抓取某电商网站的商品数据 # 第4章 大型爬虫案例&#x…

鸿蒙os报名入口,鸿蒙os2 0公测版报名链接网站入口

鸿蒙OS2.0现在已经开启了招募活动,在手机中我们可以通过报名的方法来提前体验到这个系统,那么鸿蒙OS2.0公测招募怎么报名吧,下面就来本文中看看鸿蒙OS2.0公测招募报名网址以及报名条件说明介绍吧!鸿蒙OS2.0测试版资格申请网址鸿蒙OS2.0公测招…

太赞了,京东研发一哥力荐的高可用网站构建技术PDF,备好水,慢慢啃

学习是一种基础性的能力。然而,“吾生也有涯,而知也无涯。”,如果学习不注意方法,则会“以有涯随无涯,殆矣”。 学习就像吃饭睡觉一样,是人的一种本能,人人都有学习的能力。我们在刚出生的时候…

终于拿到了2022阿里技术专家分享的552页大型网站架构实战PDF文档

说在前面 在笔者职业生涯的开端,曾参与了一个合同额每年亿元级的软件项目。 该项目有一个独特的架构,可以让开发人员近似千人一面地完成开发工作,加之该项目有严谨的项目管理流程,使得它迭代十几年至今。 之后参与了一个不太成…

随手记:发布网站时报错;文件创建完第一次无法写入数据

一、Asp.Net网站生成没问题,发布时报错:未能获得项目引用“XXX”的依赖项 解决方案:配置改成“Debug-any cpu” 补充:如果使用Release-any cpu,需要检查相关联的项目中Release文件夹中,可能缺少相关联的dll…

京东技术负责人纯手写:小团队构建大网站中小研发团队架构实战

本书结合作者近几年的工作经验,总结了一套可直接落地、基于开源、成本低、可快速搭建的中小研发团队架构实践方法。本书共5篇22章,开篇是本书的导读;架构篇是设计思想的提升,包括企业总体架构、应用架构设计、统- -应用分层等;框架篇主讲中间…

phpcms实现mysql读写分离_五指CMS(wuzhicms)开源网站管理系统 v4.1.0 简体中文 UTF8 正式版...

五指CMS(wuzhicms)开源网站管理系统简介五指cms由原phpcms V9 负责人王参加主导开发,前后台界面采用html5css3技术,可以进行跨屏、跨设备管理内容,极大的提升了用户体验。五指CMS(wuzhicms)开源网站管理系统功能特点描述模型化设计&#xff1…

一些Java技术相关的博客,专栏,和技术学习网站推荐?

推荐两个视频学习网站 慕课网 第一个推荐的学习网站应该是慕课网(慕课网私聊我打钱哈!),在我初学的时候,这个网站对我的帮助挺大的,里面有很多免费的课程,也有很多付费的课程。如果你没有特殊…

Chrome浏览器安装插件提示“无法从该网站添加应用,拓展程序或脚本”解决办法

新版的Chrome,只可以在官方商店中安装扩展。 准确的说,从主版本号67开始,以后所有版本的Chrome,都无法安装离线插件。 查看chrome版本的方法,在chrome地址栏,输入chrome://version/,回车就能查…

如何解决电商网站超卖现象

所谓超卖现象举例:比如某商品的库存为1,此时用户1和用户2并发购买该商品,用户1提交订单后该商品的库存被修改为0,而此时用户2并不知道的情况下提交订单,该商品的库存再次被修改为-1这就是超卖现象。 究其深层原因&…

Cisco官方网站悄然换标

10月2日,就在所有中国人欢度国庆佳节之际,可能是思科(cisco)历史上最大的市场活动悄然启动。就在今天,51cto.com记者发现,思科网站全面改版!其实,改版的内容不大,主要就是logo的改变。记者发现&…

CYQ.IIS 下载中心[ASP.NET 本地运行网站无需要安装IIS]

CYQ.IIS(QBlog-IIS.exe) 下载中心: 简介:CYQ.IIS(QBlog-IIS.exe) 是由一款改造自开源的CassiniServer的本地IIS运行程序,使用它可以无需要安装IIS,直接运行ASP.NET网站。 使用说明: PS&#xf…

BestSync同步软件使用指南 - FTP自动备份网站数据[转]

文/china#risefly.com 网站数据备份无疑是站长们的一个头疼问题,如服务器损坏,黑客攻击等造成数据损失无疑是一场灾难,那么如何能够安全,定时的把站点自动备份呢? 本文旨在教您如何通过BestSync同步软件,设…

今天需要部署.Net 4的网站提示 Service Unavailable

某Windows 2003服务器,装有IIS6,未安装过.Net Framework 4。今天需要部署.Net 4的网站,于是安装.Net Framework 4。 安装过程一切顺利,安装完成之后现有的几个网站就都无法访问了,提示 Service Unavailable。查看系统日…

iis 6.0上部署.net 2.0和4.0网站

网站环境 IIS6.0,操作系统Windows server2003 sp2,服务器之前已经部署了.net 2.0和asp的网站,现在要部署新开发的.net 4.0网站. 大体部署流程如下: 1.官网下载.net framework4.0,下载地址: http://www.microsoft.com/zh-cn/download/details.aspx?id17718,下载后安…

在IIS7.5中部署PHP网站报错:无法在fastCGI应用程序配置中找到handler scriptProcessor

1&#xff1a;在IIS7.5中部署PHP网站报错&#xff1a;无法在<fastCGI>应用程序配置中找到<handler> scriptProcessor 解决方案&#xff1a;1&#xff09;拷贝PHP必备的应用程序和扩展DLL(复制2个文件夹php和phptmp)2&#xff09;配置好php.ini文件的路径&#xff1…

齐博门户网站:解决百度ueditor支持iframe框架页面的视频播放问题

新下载的ueditor 增加了xss 安全过虑&#xff0c;把iframe过滤了&#xff0c;导致发表的文章包含的视频播放功能被限制了。 说明&#xff1a;新版本ueditor要修改 xss过滤白名单 修改配置文件ueditor.config.js 搜索: whitList 增加下面第二行即可 123,whitList:{iframe: [f…

在宝塔Windows面板中部署PHP网站遇到的问题及解决方法

问题一:404错误:此错误(HTTP 404 未找到) windows 2008R2 截图: windows 2012R2截图(估计是自动做了跳转) 将端口80 改为8001(端口80被IIS占用了,所以报404错误),http://127.0.0.1:8001/index_info.php 或 http://chenxi58.cn:8001/index_info.php, 均能正常打开,由…