浅谈大型网站架构技术进化

news/2024/5/13 21:00:07/文章来源:https://blog.csdn.net/weixin_34112900/article/details/94262852

短短几十年国内互联网发生了翻天覆地的变化,特别是国家支持互联网发展,提出了“互联网+”行动计划,国内各行各业的互联网更是日新月异。作为一个九零后小白没有亲身经历互联网的演变历程,如今看的像淘宝、京东、腾讯这样的大型网站充满了无数的好奇心,这些网站是怎么运作的,如何处理大量用户的请求,如何解决海量的数据库处理···于是才有对于大型网站架构核心原理以及实例分析一系列的笔记记录。所有笔记记录参考《大型网站技术架构核心原理以及案例分析》,该系列文章没有太多的代码展示,着重是对理论知识的描述。

互联网无处不在,人们的生活受互联网的席卷发生了巨大的变化,从信息检索到即时通信,从电子购物到文化娱乐,互联网已近渗透生活的每个角落,在互联网如此跨越式发展进程中,不堪负重的网站架构也带来了负面的一面,网站频繁宕机、请求操作延时、用户信息泄漏等等现象演绎的淋漓尽致。

针对上述种种现象,如何打造一个高可用、高性能、易扩展、可伸缩以及安全的网站?如何让网站随业务需求所需而灵活变通?这些将是打造一个大型网站急需要考虑的问题根本所在,通过对《大型网站技术架构核心原理以及案例分析》这本书的学习将一层层揭开其中的面纱。

俗话说的好,“汝欲得之,必先知之”,换而言之也是一个道理,想要解决那些种种现象,你得先清楚大型网站的架构演化。

大型网站软件系统的特点

相比之传统的应用系统,大型网站系统有以下特点:

高并发,大流量:面临高并发用户,大流量访问。像google、腾讯同时访问量可能出现亿单位次数。

高可用:系统支持每天24小时运作。

海量数据:需要存储海量数据并管理,需要大量的服务器来支持。

用户分布广泛,网络情况复杂:许多网站都是全球性服务的,用户分布的范围很广。例如:淘宝网

安全性恶劣:互联网追求开放性,因而易受到外界攻击,大型知名网站受到攻击更是家常便饭。

渐进式发展:几乎所有的大型网站都是渐进式发展,慢慢壮大的,这也和互联网架构的发展演化对应。

大型网站架构演化发展历程

前面已经描述了大型网站系统的特点,而对一个大型网站系统,其架构也是重要的一个环节。

大型网站技术主要的挑战来自于庞大的用户、高并发以及海量的数据这三个方面。大型网站的形成就像一颗大树的成长,历尽长时间的磨练,最后枝繁叶茂,服务他人。

初始网站架构结构

起初的网站鉴于用户量、访问量较少,只需要一台服务器足以,应用程序、数据库、文件等其所有资源放在一太服务器上就已经足够满足此时的需求,这时候网站的架构就几个简单组成部分如下图

应用和数据服务分离

随着网站业务需求的发展,越来越多的用户进行访问,此时一台服务器渐渐不能满足需求,数据的存储空间出现屏障。于是应用程序、数据库、文件三者面临分离,各自为首分配一台服务器,这三台服务器对硬件的要求各取所需,应用服务器处理大量的业务逻辑,需求更快更大的CPU;数据库服务器对数据库的处理需要快速搜索以及缓存,需求对内存更大,对硬盘读写能力更迅速;文件服务器需求放入大量的用户资源,对硬盘空间要求更大。此时的网站的架构组成部分展示如下图

使用缓存

网站的架构进一步改进后可以满足了业务的发展,但是随着网站知名度提升,用户量的进一步增加,访问数据相比之前愈加频繁,数据库压力急剧上升导致网站访问出现延迟,用户的性能体验出现下滑,面临此时网站出现的性能问题,网站架构设计需要再一次的进化,鉴于网站访问也遵循二八定律,例如:新浪微博,只有经常登录的用户才会发微博,看微博,而这些用户对于总用户数只是冰山一角。既然出现这一现象,那么缓存这部分的数据是不是可以解决这现象呢?网站缓存可以分为本地缓存和分布式缓存这两种,二者的区别是本地缓存速度快但是受服务器内存限制缓存的数量有限,而分布式缓存采用的是集群处理,理论上是可以避免内存瓶颈。此时网站的架构组成部分如下图

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

使用缓存后,数据库的压力得到缓解,但是在面临网站高峰期时,应用服务器处理单一的请求连接出现瓶颈,万事都有解决的办法,只是看你愿不愿去想,愿不愿去尝试做,采用集群,集群多台应用程序服务器分布原有的应用程序服务器,从而实现了系统的可伸缩性,网站架构此时演化成这样如下图

 

 

数据库读写分离

使用缓存,虽然使用户请求数据操作大部分不直接通过数据库,但是仍有一部分数据(缓存过期、缓存数据没有命中)读写操作需要访问数据库,面对这部分数据,可能出现数据访问负载压力,把数据库读写操作分离性能效果理当会如何呢?效果无言而喻。

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

网络覆盖范围地区广泛,造就了网络环境复杂,从而用户访问网站性能体现也各有差异,鉴于这问题,网站架构使用CDN和反向代理以技术加速网站响应,二者原理都是缓存,CDN可以从距离用户最近网络提供点获取数据;反向代理则是首先从反向代理服务器中获取数据。

分布式文件、数据库系统

任何单一的服务器最后都是满足不了业务需求发展。虽然前面数据库读写分离能够改善数据库负载压力但是随着业务不断壮大最终还是难以维持此时使用分布式数据库,该技术不到不得以建议不使用,而对于这个技术解决方案更常用的使用业务拆分,将不同的业务数据库部署在不同的物理服务器上。

NoSQL和搜索引擎

该技术对于可伸缩的分布式提供更好的支持,减轻应用程序管理诸多数据源的麻烦。

业务拆分

大型网站日益发展壮大,业务需求越来越复杂,使用分而治之手段分离整个网站的业务变成不同的产品线。具体到技术上,将一个网站拆分成许多不同的应用,每个应用独立部署,而应用与应用之间通过超链接关联,不过最多的还是通过访问同一个数据存储来构成一个关联的完整系统。

分布式服务

一个应用系统需要执行相同业务操作,那么可以将共同的业务提取出来,独立部署,由这些可复用的业务连接数据库,提供共用业务服务,而应用系统只需要管理用户界面,通过分布式调用共用业务服务完成具体业务操作。

大型网站结构演化到这里,基本上大多数的技术问题都得以解决了,但是事物发展到一定的阶段就会摆脱初衷向更强的方向发展。目前许多的大型网站都建立自己的云平台,将计算作为一种资源进行出售。

大型网站架构演化历经了长时间磨练才发展如此,在过程中也是出现一些易步入的误区

一味的追随大公司解决方案,大公司的经验和成功固然重要,但是不能盲目的追从,要与实际的具体业务需求有所改动;

为了技术而技术,网站技术是为业务而存在的,但是一味的追求新技术,可能会导致结构技术之路越走越难;

企图用技术解决所有问题,技术虽是解决业务问题的,但也不是万能钥匙,有些业务的问题也是可以通过业务手段解决。

转载于:https://www.cnblogs.com/jjg0519/p/9909247.html

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

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

相关文章

干货!各种常见布局实现+知名网站实例分析

2019独角兽企业重金招聘Python工程师标准>>> 内容太多!就贴个转发地址吧。 https://juejin.im/post/5aa252ac518825558001d5de?utm_sourcegold_browser_extension 转载于:https://my.oschina.net/u/2436852/blog/1637862

SEO完全手册之关键词选取

在SEO的过程中,对于一个网页的关键词选取和元标签META的写法是非常重要的。在本章内容中,会分为两个部分,第一个部分是对关键词的选取,第二是对META的写法做一个讨论。 关于关键词的选取。 在SEO工作中,关键词的选取…

SEO完全手册之title优化

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

SEO完全手册之关键词选取

在SEO的过程中,对于一个网页的关键词选取和元标签META的写法是非常重要的。在本章内容中,会分为两个部分,第一个部分是对关键词的选取,第二是对META的写法做一个讨论。 关于关键词的选取。 在SEO工作中,关键词的选取…

3款Google Analytics之外的开源网站分析工具

英文原文:http://www.makeuseof.com/tag/3-open-source-web-analytics-tools-google-analytics-fan/ 中文译文:http://louishan.com/articles/3-open-source-website-analytics-tools-besides-google-analytics.html If you operate your own website, a…

百度seo排名点击器app_seo百度排名下降的原因

相信很多优化公司都有经历过网站seo百度排名下降,甚至是被拔毛的情况,每次遇到这些问题都挺头疼的,然而还有很多站长却不太清楚自已网站排名被搜索引擎下降的原因,并且也不知道在网站排名下降之后,应该要怎么做来恢复被…

IIS 部署的网站无法启动

昨天更新了下电脑系统,早上一来发现自己原先在iis上部署的网站全部都被停止了。。。。。。。然后找其中一个网站进行重新启动,却是无法启动,提示如图: 这个是因为80端口被占用了,可以在 命令行 输入 netstst -ano …

储存profiles是什么意思_网站WWW是什么意思?

很多朋友在登录网站时,需要在网站的前面加上“WWW.”,但却不知道为什么要这么输入,本期文章就说说这三个W代表了什么意思。其实WWW是Word Wide Web的缩写,是“唯一性”域名的前缀,其翻译成中文的意思是“环球信息网”&…

百万网站创始人,痴迷网络经营,成就创业梦想

邹国彬,如果没有因为自己热爱的网络放弃学业,现在还坐在学校里读书或奔波在找工作的路上。就是因为当初对网络的痴迷和执着,才成就了今天看来不斐的成就。成为一家月收入10多万元、估价已达数百万元网站的创始人和经营者。 邹国彬说&#xff…

硕士毕业的他做生鲜电商网站,日流水3万元

作为清华大学金融系硕士毕业生,韩成效有机会在金融界找一份年薪五六十万的工作。 韩成效第一次登门拜访时,向女朋友爷爷介绍自己的工作时说是“在网上卖水果蔬菜的”。 父母也不支持韩成效的创业。公司最困难的时候,他向父母寻求资金支持也…

Slog43_支配vue框架初阶项目之博客网站-单页-载入要上传的图片

ArthurSlogSLog-43Year1GuangzhouChinaAug 21th 2018GitHub掘金主页简书主页segmentfault人生就是这样 苦乐相伴 福祸相依 开发环境MacOS(High Sierra 10.13.5) 需要的信息和信息源: HTTP概述HTTP互联网是如何工作的万维网是如何工作的统一资源定位符(URL)什么是超链…

官网分析(英雄传奇)(如何设计网站前端)

官网分析(英雄传奇)(如何设计网站前端) 一、总结 一句话总结:最开始以仿为主,仿的多了,自己就会了。分块,留白,简洁,图片找好,字体找好&#xff0…

漫谈一下响应式设计网站

响应式设计中的界面设计 对于界面设计,我们以前针对桌面产品的设计可能就是一个尺寸的,每个模块的位置比较固定,但是在响应式设计中,这些东西就改变了,设计师会根据产品 的需要设计多个版本的设计,在这些不…

十周后,62%的PHP网站将运行在一个不受支持的PHP版本上

根据W3Techs的统计数据,目前约有78.9%的网站使用PHP开发。\\但是,PHP 5.6.x的安全支持将在2018年12月31日正式停止,这标志着对古老的PHP 5.x分支版本的支持都将结束。\\也就是说,从明年开始,大约62&#xf…

Oron.com:一个新颖的上传下载服务网站(可以赚钱喔)

偶尔发现了这个网站,觉得功能不错,界面比较简约,用起来很方便;而且推广模式也比较新颖。 网址:http://www.oron.com/ 上传文件的数量没有限制! 免费 已经注册 高级最大上传文件大小:400 Mb1024 Mb2048 Mb最…

高性能网站建设指南总结

性能黄金法则:只有10%~20%的最终用户响应时间花在了下载HTML文档上,其余的80%~90%时间花在了下载页面中的所有组件。 1、 减少Http请求:减少HTML文档中所引用的组件(图片,脚本,样式…

电商项目day09(网站前台之广告功能实现优化策略)

今日目标: 1、完成门户网站的搭建 2、完成运营商广告后台管理 3、轮播图广告展示 4、spring data redis 集成到项目 5、redis缓存优化广告业务 一、门户网站业务分析 1.首先广告业务: 第一:吸引用户 第二:运营商通过网站的流量赚钱…

个人网站不输入www.直接domain.com访问不了,输入www.domain.com能访问

网站访问跳转到/cgi-sys/defaultwebpage.cgi页面原因之一ip地址不对解决后,www.domain.com是可以访问了。但是直接domain.com去不能?我记得刚开始开通域名和主机的时候,装的wordpress默认配置是后台我觉得,在中国,有ww…

带着梦想和坚强,她收获了80后创业的广阔舞台,网站实现营利

与过去说分手,并不意味着与梦想说再见,如果因逃避现实而离开的话,恐怕那就不是达贝妮了,也就不会出现一个在百度与谷歌都吃不准的IT新领域的吃螃蟹者。 回看达贝妮走过的创业历程,我们发现上面打着深深的“Benny”式的…

html网站实现站内搜索功能_网站结构优化,网站结构如何设计才能符合SEO优化?

网站SEO结构优化是一项较为复杂的优化工作,网站结构设计必须要符合SEO优化,至少需要考虑网站目录结构URL,那网站结构如何设计才能符合SEO优化?网站结构如何设计才能符合SEO优化?1.站内搜索严格意义上讲,蝙蝠侠IT给出的建议是尽量…