干货丨不为技术而技术:大型网站架构演化解析
ccwgpt 2024-10-05 14:22 31 浏览 0 评论
点击上方蓝字即可关注 51CTO
前沿 | 干货 | 交流 | 共享
互联网无处不在,人们的生活受互联网的席卷发生了巨大的变化,从信息检索到即时通信,从电子购物到文化娱乐,互联网已近渗透生活的每个角落,在互联网如此跨越式发展进程中,不堪负重的网站架构也带来了负面的一面,网站频繁宕机、请求操作延时、用户信息泄漏等等现象演绎的淋漓尽致。
针对上述种种现象,如何打造一个高可用、高性能、易扩展、可伸缩以及安全的网站?如何让网站随业务需求所需而灵活变通?这些将是打造一个大型网站急需要考虑的问题根本所在,通过对《大型网站技术架构核心原理以及案例分析》这本书的学习将一层层揭开其中的面纱。
俗话说的好,“汝欲得之,必先知之”,换而言之也是一个道理,想要解决那些种种现象,你得先清楚大型网站的架构演化。
大型网站软件系统的特点
相比之传统的应用系统,大型网站系统有以下特点:
高并发,大流量:面临高并发用户,大流量访问。像google、腾讯同时访问量可能出现亿单位次数。
高可用:系统支持每天24小时运作。
海量数据:需要存储海量数据并管理,需要大量的服务器来支持。
用户分布广泛,网络情况复杂:许多网站都是全球性服务的,用户分布的范围很广。例如:淘宝网
安全性恶劣:互联网追求开放性,因而易受到外界攻击,大型知名网站受到攻击更是家常便饭。
渐进式发展:几乎所有的大型网站都是渐进式发展,慢慢壮大的,这也和互联网架构的发展演化对应。
架构演化发展历程
前面已经描述了大型网站系统的特点,而对一个大型网站系统,其架构也是重要的一个环节。
大型网站技术主要的挑战来自于庞大的用户、高并发以及海量的数据这三个方面。大型网站的形成就像一颗大树的成长,历尽长时间的磨练,最后枝繁叶茂,服务他人。
初始网站架构结构
起初的网站鉴于用户量、访问量较少,只需要一台服务器足以,应用程序、数据库、文件等其所有资源放在一太服务器上就已经足够满足此时的需求,这时候网站的架构就几个简单组成部分如下图
应用数据服务分离
随着网站业务需求的发展,越来越多的用户进行访问,此时一台服务器渐渐不能满足需求,数据的存储空间出现屏障。于是应用程序、数据库、文件三者面临分离,各自为首分配一台服务器,这三台服务器对硬件的要求各取所需,应用服务器处理大量的业务逻辑,需求更快更大的CPU;
数据库服务器对数据库的处理需要快速搜索以及缓存,需求对内存更大,对硬盘读写能力更迅速;文件服务器需求放入大量的用户资源,对硬盘空间要求更大。此时的网站的架构组成部分展示如下图
使用缓存
网站的架构进一步改进后可以满足了业务的发展,但是随着网站知名度提升,用户量的进一步增加,访问数据相比之前愈加频繁,数据库压力急剧上升导致网站访问出现延迟,用户的性能体验出现下滑,面临此时网站出现的性能问题,网站架构设计需要再一次的进化,鉴于网站访问也遵循二八定律。
例如:新浪微博,只有经常登录的用户才会发微博,看微博,而这些用户对于总用户数只是冰山一角。既然出现这一现象,那么缓存这部分的数据是不是可以解决这现象呢?网站缓存可以分为本地缓存和分布式缓存这两种,二者的区别是本地缓存速度快但是受服务器内存限制缓存的数量有限,而分布式缓存采用的是集群处理,理论上是可以避免内存瓶颈。此时网站的架构组成部分如下图
改善网站并发能力
使用缓存后,数据库的压力得到缓解,但是在面临网站高峰期时,应用服务器处理单一的请求连接出现瓶颈,万事都有解决的办法,只是看你愿不愿去想,愿不愿去尝试做,采用集群,集群多台应用程序服务器分布原有的应用程序服务器,从而实现了系统的可伸缩性,网站架构此时演化成这样如下图
数据库读写分离
使用缓存,虽然使用户请求数据操作大部分不直接通过数据库,但是仍有一部分数据(缓存过期、缓存数据没有命中)读写操作需要访问数据库,面对这部分数据,可能出现数据访问负载压力,把数据库读写操作分离性能效果理当会如何呢?效果无言而喻。
CDN和反向代理
网络覆盖范围地区广泛,造就了网络环境复杂,从而用户访问网站性能体现也各有差异,鉴于这问题,网站架构使用CDN和反向代理以技术加速网站响应,二者原理都是缓存,CDN可以从距离用户最近网络提供点获取数据;反向代理则是首先从反向代理服务器中获取数据。
分布式文件、数据库系统
任何单一的服务器最后都是满足不了业务需求发展。虽然前面数据库读写分离能够改善数据库负载压力但是随着业务不断壮大最终还是难以维持此时使用分布式数据库,该技术不到不得以建议不使用,而对于这个技术解决方案更常用的使用业务拆分,将不同的业务数据库部署在不同的物理服务器上。
NoSQL和搜索引擎
该技术对于可伸缩的分布式提供更好的支持,减轻应用程序管理诸多数据源的麻烦。
业务拆分
大型网站日益发展壮大,业务需求越来越复杂,使用分而治之手段分离整个网站的业务变成不同的产品线。具体到技术上,将一个网站拆分成许多不同的应用,每个应用独立部署,而应用与应用之间通过超链接关联,不过最多的还是通过访问同一个数据存储来构成一个关联的完整系统。
分布式服务
一个应用系统需要执行相同业务操作,那么可以将共同的业务提取出来,独立部署,由这些可复用的业务连接数据库,提供共用业务服务,而应用系统只需要管理用户界面,通过分布式调用共用业务服务完成具体业务操作。
大型网站结构演化到这里,基本上大多数的技术问题都得以解决了,但是事物发展到一定的阶段就会摆脱初衷向更强的方向发展。目前许多的大型网站都建立自己的云平台,将计算作为一种资源进行出售。
大型网站架构演化历经了长时间磨练才发展如此,在过程中也是出现一些易步入的误区
一味的追随大公司解决方案,大公司的经验和成功固然重要,但是不能盲目的追从,要与实际的具体业务需求有所改动;
为了技术而技术,网站技术是为业务而存在的,但是一味的追求新技术,可能会导致结构技术之路越走越难;
企图用技术解决所有问题,技术虽是解决业务问题的,但也不是万能钥匙,有些业务的问题也是可以通过业务手段解决。
内容来源:Never_Land博客
51CTO读书频道
我们分享书籍,也分享学习的快乐
长摁二维码,即可参与51CTO送书活动
先到先得,送完为止!
相关推荐
- 用Deepseek扩写土木工程毕业论文实操指南
-
用Deepseek扩写毕业论文实操指南一、前期准备整理现有论文初稿/提纲列清楚论文核心框架(背景、现状、意义、方法、数据、结论等)梳理好关键文献,明确核心技术路线二、Deepseek扩写核心思路...
- 985学霸亲授,DeepSeek也能绘6大科研图表,5分钟就出图
-
在实验数据处理中,高效可视化是每个科研人的必修课。传统绘图软件操作复杂、耗时费力,而智能工具DeepSeek的出现彻底改变了这一现状。本文将详解如何用DeepSeek一键生成六大科研常用图表,从思维导...
- AI写论文刷屏?大学生正在丢掉的思考力
-
一、宿舍深夜:当论文变成"Ctrl+C+V"凌晨两点的大学宿舍,小王对着电脑屏幕叹气。本该三天前开始写的近代史论文,此刻还一片空白。他熟练打开某AI写作网站,输入"论五四运动的...
- Grok在辅助论文写作上能不能既“聪明”又“可怕”?!
-
AcademicIdeas-学境思源AI初稿写作随着人工智能技术的飞速发展,论文写作这一学术任务正迎来新的助力。2025年2月18日,美国xAI公司推出了备受瞩目的Grok3模型,其创始人埃隆·...
- 大四论文沟通场景!音频转文字难题听脑AI来化解
-
大四学生都知道,写论文时和导师沟通修改意见,简直是“过关斩将”。电话、语音沟通完,想把导师说的修改方向、重点要求记下来,麻烦事儿可不少。手写记不全,用普通录音转文字工具,转完还得自己慢慢找重点,稍不注...
- 论文写作 | 技术路线图怎么画?(提供经典优秀模板参考)
-
技术路线图是一种图表或文字说明,用于描述研究目标、方法和实施计划。它展示了研究的整体框架和步骤,有助于读者理解研究的逻辑和进展。在课题及论文中,技术路线图是常见的一部分,甚至是一个类似心脏一样的中枢器...
- 25年信息系统项目管理师考试第2批论文题目写作建议思路框架
-
25年信息系统项目管理师考试第2批论文题目写作建议思路框架--马军老师
- 微信购物应尽快纳入法律框架(微信购物管辖)
-
符向军近日,甘肃省工商行政管理局发布《2016年上半年信息分析报告》。报告显示,微信网购纠纷迅猛增长,网络购物投诉呈上升趋势。投诉的主要问题有出售的商品质量不过关、消费者通过微信付款后对方不发货、购买...
- 泛珠三角区域网络媒体与腾讯微信签署《战略合作框架协议》
-
新海南客户端、南海网7月14日消息(记者任桐)7月14日上午,参加第四届泛珠三角区域合作网络媒体论坛的区域网络媒体负责人及嘉宾一行到腾讯微信总部座谈交流,并签署《战略合作框架协议》(以下简称《框架协...
- 离线使用、植入微信-看乐心Mambo手环如何打破框架
-
从2014年开始智能手环就成功进入人们的生活,至今已经演变出数据监测、信息推送、心率监测等诸多五花八门的功能,人们选择智能手环并不指望其能够改变身体健康情况,更多的是通过数据来正视自身运动情况和身体健...
- 华专网络:如何零基础制作一个网站出来?
-
#如何零基础制作一个网站出来?#你是不是觉得网站建设很复杂,觉得自己是小白,需求不明确、流程搞不懂、怕被外包公司坑……这些问题我都懂!今天华专网络就用大白话给你捋清楚建站的全流程,让你轻松get网站制...
- WAIC2024丨明日上午9点,不见不散!共同探讨智能社会与全球治理框架
-
大咖云集,硕果闪耀WAIC2024世界人工智能大会智能社会论坛将于7月5日9:00-12:00与你相约直播间WAIC2024上海杨浦同济大学哔哩哔哩多平台同步直播探讨智能社会与全球治理框架WAIC...
- 约基奇:森林狼换来戈贝尔时大家都在嘲笑 他们的阵容框架很不错
-
直播吧5月4日讯西部季后赛半决赛,掘金将迎战森林狼,约基奇赛前接受采访。约基奇说道:“当蒂姆-康纳利(森林狼总经理、前掘金总经理&曾选中约基奇)做了那笔交易(换来戈贝尔)时,每个人都在嘲笑他...
- 视频号带货为什么一个流量都没有?顶级分析框架送给你
-
视频号带货为什么一个流量都没有?遇到问题,一定是步步来分析内容,视频号带货一个流量都没有,用另外一个意思来讲,就可以说是零播放。为什么视频号带货一个流量都没有?跟你说再多,都不如来个分析框架。1、是否...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- MVC框架 (46)
- spring框架 (46)
- 框架图 (58)
- flask框架 (53)
- quartz框架 (51)
- abp框架 (47)
- jpa框架 (47)
- laravel框架 (46)
- springmvc框架 (49)
- 分布式事务框架 (65)
- scrapy框架 (56)
- shiro框架 (61)
- 定时任务框架 (56)
- java日志框架 (61)
- JAVA集合框架 (47)
- grpc框架 (55)
- ppt框架 (48)
- 内联框架 (52)
- winform框架 (46)
- gui框架 (44)
- cad怎么画框架 (58)
- ps怎么画框架 (47)
- ssm框架实现登录注册 (49)
- oracle字符串长度 (48)
- oracle提交事务 (47)