网站架构演变

news/2024/5/9 9:01:55/文章来源:https://blog.csdn.net/nicewuranran/article/details/52177370

网站架构演变


大型网站介绍

与传统企业应用系统相比,大型互联网网站系统具有以下特点1、大流量、高并发
这一点往往是传统企业应用系统根本就不会遇到的问题,比如Goole每日访问量都是几十亿,如果服务器端处理不好早就被压的宕机了。2、高可用
由于其面向的受众用户很多,所以对其要求也高,系统7 x 24小时运转。3、海量数据
需要存储和管理的数据非常的庞大,facebook天上传图片量就达到数亿张。4、用户分布广泛,网络情况复杂
跨市跨区跨省甚至跨国家对大型互联网系统都是正常的5、网络安全问题
对于大型网站来说,安全问题就非常重要了,因为被更多的人关注着6、需求变更较频繁
相比传统企业系统有比较固定和成熟的模型和解决方案,互联网系统则比较新,一切都在探索中发展。7、渐进式发展
没有一开始就设计的完美的架构,只有逐渐演变完美的架构

备注:一切最初不是问题的问题,当数据量和用户量递增到一定规模之后不是问题的问题就成为问题了。

网站架构发展史


初始阶段的网站架构

大型网站都是由小型网站发展而来的,网站架构也一样,由小型简单架构到复杂大型架构。 
小型网站由于开始访问人数不多,不存在多少的并发量,也许只需要一台服务器就足够了。这阶段往往应用程序、数据库、文件数据都存在同一台服务器上。
经典的LAMP架构往往就是如此

初始阶段网站架构

初始阶段网站架构


应用服务器和数据库服务器分离

随着网站的发展,越来越多的用户访问,一台服务器提供的性能开始并不能很好满足发展需求。 
此时将应用程序、数据库、文件单独各自放在私有服务器上市很有必要的。备注:应用程序、数据库、文件对服务器配置资源要求是不同的。
应用程序服务器:强大的CPU(处理大量的业务逻辑)
数据库服务器:快速磁盘(固态硬盘)和大内存
文件服务器:大容量磁盘

应用服务器和数据服务器分离

应用服务器和数据服务器分离


使用缓存改善网站性能

网站中很多的数据都是集中在查询部分数据,因此将一些频繁查询和很少改动的数据作为缓存数据存储在内存中, 
可以大大提高网站访问数据性能和减轻数据库查询压力。网站使用缓存通常可以分为两种:
1、应用服务中的内存缓存(很快)
2、分布式缓存(比较快)备注:应用程序中的内存缓存受限于服务器内存大小,并且还存在和应用程序抢占资源情况。 
分布式缓存理论上是不存在内存大小限制,因为可以集群。

使用缓存后的网站架构



使用缓存可以有效的减轻网站大流量和并发带给数据库的压力,但是应用程序的压力并没有减小,因此下一步就要使用集群了来减轻应用服务器压力了

应用服务器集群改善网站并发能力

使用集群式网站解决高并发、海量数据问题的常用和有效的手段。当一台服务器处理能力有限时, 
不要试图换更强大的服务器,因为随着业务和流量的增大,再强大的单台服务器都很能满足性能要求。

使用集群架构



备注:
1、负载均衡我们可以选择F5(硬件负载)/nginx(软件负载)
2、应用程序服务器和缓存服务器的集群相对比较简单容易实现
3、最难实现的可能就是数据库服务器的集群了

数据库读写分离提高网站并发能力

随着网站的发展,数据库再一次成为了性能瓶颈。由于读库和写库都在一个数据库服务器中操作因此数据库压力还是很大。此时将数据库分为一个主库多个读库就可以大大减轻数据库访问压力了。主库:只进行写/更新操作
从库:只进行查询操作
从库的查询时存在一点点时延的(比较小)数据库主从热备份,基于日志推拉模式来同步数据

数据库读写分离

备注数据库读写分离后程序段如何访问数据库
1、根据业务是查询操作还是写入操作指定不同的数据库配置
2、由数据库中间件单独统一处理,对请求的SQL语句分析,指定请求数据库

使用反向代理和CDN加速网站响应

由于地理因素和网络环境因素,导致网络环境比较复杂,因此要加速网站访问速度可以借组CDN和反向代理。CDN和反向代理的基本原理都是缓存,区别在于CDN部署在网络提供商的机房,使用户访问网站服务时,
可以从最近的网络提供商机房那里获取数据(通常是静态文件)。而反向代理则部署在网站的中心机房, 
当用户请求到达中心机房后,首先访问的服务器是反向代理服务器,如果反向代理服务器缓存着用户请求资源的话,那么就直接响应用户。

使用反向代理和CDN加速网站响应



使用CDN和反向代理的目的都是为了尽早返回数据给用户,一方面提高用户访问速度,另一方面可以减轻后端服务器的负载压力。

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

分布式数据库是网站数据库拆分的最后手段,只有在单表数据规模非常庞大时才使用。 
更多时候我们倾向业务拆分,将不同的业务数据放在不同的物理服务器上。

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

使用NO-SQL和搜索引擎

随着网站业务越来越复杂,对数据存储和检索的需求也越来越复杂,网站需要采用一些非关系型数据库技术入股NOSQL和非数据库查询技术如搜索引擎。

使用NO-SQL和搜索引擎

NoSQL和搜索引擎都是来自互联网的技术手段,对可伸缩的分布式特性具有很好的支持。
应用服务器则通过一个统一的数据访问模块访问各种数据源,减轻应用程序管理诸多数据源的麻烦。

业务拆分

良好的业务拆分可以使得原本复杂的网站架构降低复杂度。

业务拆分

参考

1、大型网站技术架构

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

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

相关文章

实用的网站、工具(科研学术、wps、作图、教程和文档、在线开发工具、在线编程学习、文档笔记工具、办公工具、写作、设计制作类、素材库)

文章目录 科研学术Sci-Hub:SciHub科研学术网址导航 wps相关pdf 转换工具PDF派CleverPDF迅捷PDF转换器 免费模板优品PPTOfficePlus第一PPT 作图在线画图工具ProcessOn在线画图工具draw.io在线思维导图工具PlantUML在线编辑器免费在线图片编辑器 - 在线抠图、改图、修图、美图 - …

【129.1】大型网站技术架构 并发相关知识

一:什么是高并发? 高并发指的是并发数量,是指同一时间有多少个访问同时来访问同一api接口或者url地址。 二:高并发相关概念 1)(每秒查询率):每秒请求或者查询的数量,在…

jQuery Mobile在微信建站方面的应用

jQuery Mobile在微信建站方面的应用 2014年10月28日 电子商务、网站建设 jQuery Mobile、微信建站 感谢这个不断变革的时代,让我这个三十六岁的IT老兵重新拾起武器开始微信建站,拥抱移动互联网。大概有两年多的时间已经没有正式参与建站工作了&#xff0…

NMPA可以解析了 国家药品监督管理局网站

国家药品监督管理局网站有很多药品、保健品数据,很多人需要相关数据所以才去采集。但是,NMPA网站的反爬一直走在最前线,爬虫的程序一直无法很好工作。 现在,搞定了。 目前可以使用程序打开药监局网站,然后到药品页面…

scrapy爬取某视频网站的部分视频信息

此次爬取的信息有: 1、视频名称 2、在线观看人数 3、弹幕内容 4、弹幕发送时间 5、弹幕在视频中的位置 6、点赞 7、收藏 8、投币数 由于b站的很多信息是动态加载的。所以部分信息,需要自己抓包,进入对应的网址抽取信息。例如在线观看视频人…

一个将多线程多进程结合爬取图片网站的示例

在图片网站爬取图片时候,我们需要取得具体每张图片的url地址,然后下载到电脑保存下来。这其中,对时间消耗最多的步骤是保存图片到本地硬盘,机械硬盘的读写性能速度较慢。如果采取单线程单进程的话,在读写的同时没法进行…

将代码提交到github的两种方式(其他项目管理网站类似)

首先先去git官网下载git,现在就去. 下载完成之后,右键git bash 使用命令行配置你的git的用户名和邮箱,因为git是分布式系统,所以每个用户都是独立的 命令行输入: git config --global user.name "Your Name"git config --global user.email "emailexample.com…

​​​资源分享 | 一、盘点高清壁纸网站​​

​​​资源分享 | 一、盘点高清壁纸网站​​​​​​​​​​ ​​1. wallroom​​ ​​​​2. 极简壁纸​​​ ​​​​3. 高清壁纸库​​ ​​​​4. 动漫图片和壁纸​​ ​​​​5. Wallpaper Abyss​​​​ 资源分享 | 一、盘点无版权图片网站 作者:1024导…

微信开放平台申请网站应用

前言: 这是一篇我想严重吐槽的文章,我需要做一个微信扫码功能,我看了下文档,发现没有那么难,结果一开始我就卡壳,申请网站应用我申请了四次,我很奔溃,关键是我搞不懂的是为什么审核…

让你的网站应用加上微信扫码功能

前言: 继上篇文章在微信开放平台申请网站应用以后,我们就可以正式开始做微信扫码登录这个功能了,接下来这篇文章我将用最通俗易懂的话语让大家掌握整个微信扫码开发的流程,其实真的很简单,只要认真阅读官方文档,一步步…

python3.2 自动登录网站

让我帮写个小程序,查了查资料,用python写了一个,以前没用过,都是现查的资料,比较粗糙,放到这里留作备用。 1 import urllib.parse 2 import urllib.request 3 4 # ------------------------------需…

Python 自动登录网站(处理Cookie)

Python 自动登录网站(处理Cookie) 博客分类: Python Python代码 def login(): cj cookielib.CookieJar() opener urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) login_url rhttp://zhixing.bjtu.edu.cn/memb…

Python 最近因开发项目的需要,有一个需求,就是很多SNS网站都有的通过 Email地址 导入好友列表,不过这次要导入的不是Email 列表,而是QQ的好友列表。 实现方式: 通过goog

Python 最近因开发项目的需要,有一个需求,就是很多SNS网站都有的通过 Email地址 导入好友列表,不过这次要导入的不是Email 列表,而是QQ的好友列表。 实现方式: 通过google一搜,实现的方式大概有下面这篇文…

wordpress搜索引擎蜘蛛统计插件SEO

索引擎蜘蛛统计插件可以实时对搜索引擎来访进行统计,指导站长的运营,来访的蜘蛛类型和访问的页面都能在后台一目了然! 免费使用下载https://yomeiyo.lanzouw.com/ifh5300s4p7a安装即可 插件安装方法 上传压缩包安装插件 如果是付费插件的话…

用Django建一个网站

目标:用最短的步骤在本机创建一个网站。 第一步 安装好Django之后,在放置网页的目录下打开命令行,输入 django-admin startproject mysite 即可自动创建一个名为mysite的文件夹。 进入mysite文件夹,创建第一个web程序app01(任意):…

提升大型网站并发访问性能

应用服务器 网络应用 中国电信 Linux配置管理 一个小型的网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构、性能的要求都很简单。随着互联网业务的不断丰…

requests 正则表达正式基础爬虫案例二:爬取网站数据

要求:爬取https://ssr1.scrape.center/ 网站中所有电影标题、类型、地区、电影时长、上映日期、评分、简介; 分析:网站共有两个页面组成,电影列表和详情,我们所需要的内容都在详情页面里面可以找到。 列表页面共10页&a…

PC端网站 rem适配方案

以1920设计稿为准 1、使用sass语法 转换px rem , vscode编辑器安装插件easy-scss 安装之后打开插件setting.json, 在setting.json里配置转换后css的路径 “easysass.targetDir”: “./css” 创建css文件、scss文件: 项目中如何使用index.sc…

给大家分享下织梦网站模板

最近需要用到一个官网模板,作为一个后台程序员来说写前端和专业的差了远了,所以想找个模板学习下,可是我这面是一顿搜一顿找找了好多都快绝望了因为都不是免费下载的不过最终还是找到了,在这里分享给大家 模板一 红色大气响应式重…

网站案例,成功案例--我的个人作品

西南贝思建筑图书连锁店网上书店成都美可快餐诚信促进会 成都商务投资网中国西部土工材料网广东劳斯丹顿卫浴设备有限公司盛世外贸服装批发城西南时报成都免费网站中国检察网成都乐于健康护理成都顺世文化传播有限公司西南大学生联盟成都川国味餐饮有限公司成都市科技进修学院…