解读大型网站系统架构的演化

20 篇文章 1 订阅
订阅专栏

解读大型网站系统架构的演化

大型网站的架构是根据业务需求不断完善的,根据不同的业务特征会做特定的设计和考虑,本文只是讲述一个常规大型网站会涉及的一些技术和手段。
作者:李平来源:LEE的博客

前言

一个成熟的大型网站(如淘宝、京东等)的系统架构并不是开始设计就具备完整的高性能、高可用、安全等特性,它总是随着用户量的增加,业务功能的扩展逐渐演变完善的,在这个过程中,开发模式、技术架构、设计思想也发生了很大的变化,就连技术人员也从几个人发展到一个部门甚至一条产品线。所以成熟的系统架构是随业务扩展而完善出来的,并不是一蹴而就;不同业务特征的系统,会有各自的侧重点,例如淘宝,要解决海量的商品信息的搜索、下单、支付,例如腾讯,要解决数亿的用户实时消息传输,百度它要处理海量的搜索请求,他们都有各自的业务特性,系统架构也有所不同。尽管如此我们也可以从这些不同的网站背景下,找出其中共用的技术,这些技术和手段可以广泛运行在大型网站系统的架构中,下面就通过介绍大型网站系统的演化过程,来认识这些技术和手段。

一、最开始的网站架构

最初的架构,应用程序、数据库、文件都部署在一台服务器上,如图:

image

二、应用、数据、文件分离

随着业务的扩展,一台服务器已经不能满足性能需求,故将应用程序、数据库、文件各自部署在独立的服务器上,并且根据服务器的用途配置不同的硬件,达到最佳的性能效果。

image

三、利用缓存改善网站性能

在硬件优化性能的同时,同时也通过软件进行性能优化,在大部分的网站系统中,都会利用缓存技术改善系统的性能,使用缓存主要源于热点数据的存在,大部分网站访问都遵循28原则(即80%的访问请求,最终落在20%的数据上),所以我们可以对热点数据进行缓存,减少这些数据的访问路径,提高用户体验。

image

缓存实现常见的方式是本地缓存、分布式缓存。当然还有CDN、反向代理等,这个后面再讲。本地缓存,顾名思义是将数据缓存在应用服务器本地,可以存在内存中,也可以存在文件,OSCache就是常用的本地缓存组件。本地缓存的特点是速度快,但因为本地空间有限所以缓存数据量也有限。分布式缓存的特点是,可以缓存海量的数据,并且扩展非常容易,在门户类网站中常常被使用,速度按理没有本地缓存快,常用的分布式缓存是Membercache、Redis。

四、使用集群改善应用服务器性能

应用服务器作为网站的入口,会承担大量的请求,我们往往通过应用服务器集群来分担请求数。应用服务器前面部署负载均衡服务器调度用户请求,根据分发策略将请求分发到多个应用服务器节点。

架构4

常用的负载均衡技术硬件的有F5,价格比较贵,软件的有LVS、Nginx、HAProxy。LVS是四层负载均衡,根据目标地址和端口选择内部服务器,Nginx和HAProxy是七层负载均衡,可以根据报文内容选择内部服务器,因此LVS分发路径优于Nginx和HAProxy,性能要高些,而Nginx和HAProxy则更具配置性,如可以用来做动静分离(根据请求报文特征,选择静态资源服务器还是应用服务器)。

五、数据库读写分离和分库分表

随着用户量的增加,数据库成为最大的瓶颈,改善数据库性能常用的手段是进行读写分离以及分表,读写分离顾名思义就是将数据库分为读库和写库,通过主备功能实现数据同步。分库分表则分为水平切分和垂直切分,水平切换则是对一个数据库特大的表进行拆分,例如用户表。垂直切分则是根据业务不同来切换,如用户业务、商品业务相关的表放在不同的数据库中。

架构3

六、使用CDN和反向代理提高网站性能

假如我们的服务器都部署在成都的机房,对于四川的用户来说访问是较快的,而对于北京的用户访问是较慢的,这是由于四川和北京分别属于电信和联通的不同发达地区,北京用户访问需要通过互联路由器经过较长的路径才能访问到成都的服务器,返回路径也一样,所以数据传输时间比较长。对于这种情况,常常使用CDN解决,CDN将数据内容缓存到运营商的机房,用户访问时先从最近的运营商获取数据,这样大大减少了网络访问的路径。比较专业的CDN运营商有蓝汛、网宿。

而反向代理,则是部署在网站的机房,当用户请求达到时首先访问反向代理服务器,反向代理服务器将缓存的数据返回给用户,如果没有没有缓存数据才会继续走应用服务器获取,也减少了获取数据的成本。反向代理有Squid,Nginx。

架构5

七、使用分布式文件系统

用户一天天增加,业务量越来越大,产生的文件越来越多,单台的文件服务器已经不能满足需求。需要分布式的文件系统支撑。常用的分布式文件系统有NFS。

架构5.5

八、使用NoSql和搜索引擎

对于海量数据的查询,我们使用nosql数据库加上搜索引擎可以达到更好的性能。并不是所有的数据都要放在关系型数据中。常用的NOSQL有mongodb和redis,搜索引擎有lucene。

架构6

九、将应用服务器进行业务拆分

随着业务进一步扩展,应用程序变得非常臃肿,这时我们需要将应用程序进行业务拆分,如百度分为新闻、网页、图片等业务。每个业务应用负责相对独立的业务运作。业务之间通过消息进行通信或者同享数据库来实现。

架构7

十、搭建分布式服务

这时我们发现各个业务应用都会使用到一些基本的业务服务,例如用户服务、订单服务、支付服务、安全服务,这些服务是支撑各业务应用的基本要素。我们将这些服务抽取出来利用分部式服务框架搭建分布式服务。淘宝的Dubbo是一个不错的选择。

架构8

小结

大型网站的架构是根据业务需求不断完善的,根据不同的业务特征会做特定的设计和考虑,本文只是讲述一个常规大型网站会涉及的一些技术和手段。

大型网站系统架构演化之路.pdf
11-16
大型网站系统架构演化之路.pdf
B/S 架构诞生的历史背景
SAP 资深技术专家 Jerry Wang 的技术分享
08-24 134
B/S架构(Browser/Server 架构),又称为 Web 架构,是一种应用程序的体系结构,将用户界面和业务逻辑分离在不同的层次,通过浏览器作为客户端来访问远程服务器上的应用程序。这一架构的诞生是为了应对日益增长的互联网应用需求,它带来了许多优势,例如跨平台性、易于维护、可扩展性以及低成本部署等。在本文中,我将详细解释 B/S 架构的背景、优势,并通过几个实际案例加以说明。
大型网站系统架构的演变
liqiangshuaixiaozia的专栏
09-26 897
解读大型网站系统架构演化 2014-09-26 09:53 李平 LEE的博客 字号:T | T 大型网站架构是根据业务需求不断完善的,根据不同的业务特征会做特定的设计和考虑,本文只是讲述一个常规大型网站会涉及的一些技术和手段。 AD:2014WOT全球软件技术峰会北京站 课程视频发布 11月21日-22日 与WOT技术大会相约深圳 现在抢票 前言 一个成
什么是B/S架构
纯技术流日常开发商业开发记录总结等
04-17 1万+
B/S架构,即浏览器/服务器架构,是一种网络架构模式,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户端只需要安装一个浏览器,通过Web服务器与数据库服务器进行数据交互。B/S架构利用了Web浏览器技术和Internet协议,实现了异构系统的连接和信息的共享。
B/S架构及其运行原理
热门推荐
mike_jun的博客
03-23 25万+
目录 一. B/S的概念 二. B/S工作原理 三. B/S的优点: 四. B/S体系结构的特点: 五. 与传统C/S的联系与区别: 一. B/S的概念 B/S(Brower/Server,浏览器/服务器)模式又称B/S结构,是Web兴起后的一种网络结构模式。Web浏览器是客户端最主要的应用软件。 这种模式统一了客户端,将系统功能实现的核心部分...
B/S架构
李黏黏的博客
04-11 4万+
B/S架构
大型网站系统架构演化
03-03
一个成熟的大型网站(如淘宝、京东等)的系统架构并不是开始设计就具备完整的高性能、高可用、安全等特性,它总是随着用户量的增加,业务功能的扩展逐渐演变完善的,在这个过程中,开发模式、技术架构、设计思想也...
大型网站架构演化发展历程
02-26
前面已经描述了大型网站系统的特点,而对一个大型网站系统,其架构也是重要的一个环节。大型网站技术主要的挑战来自于庞大的用户、高并发以及海量的数据这三个方面。大型网站的形成就像一颗大树的成长,历尽长时间的...
三层结构
weixin_34378922的博客
12-26 1294
B/S结构,即Browser/Server(浏览器/服务器)结构,就是只安装维护一个服务器(Server),而客户端采用浏览器(Browse)运行软件。它是随着Internet技术的兴起,对C/S结构的一种变化和改进。主要利用了不断成熟的WWW浏览器技术,结合多种Script语言(VBScript、JavaScript…)和ActiveX技术,是一种全新的软件系统构造技术。 ...
PostmanB/S架构
08-25
Postman软件,B/S架构,可以用来测试WebService中不同请求方法的结构
常见B/S系统架构设计
weixin_42408447的博客
05-21 5745
要点 一:前端架构     前端是通常是指用户的请求到达应用服务器之前经历的环节,一般不包括业务逻辑,不处理动态数据。     1.浏览器优化技术     并不是优化浏览器,而是通过优化响应页面,加快浏览器页面的加载和显示,常用的有页面缓存、合并HTTP减少请求次数、使用页面压缩等。     2.CDN   &n...
B/S架构的演进
yaotai8135的博客
07-25 445
上面这个架构是一个十分复杂的架构,含金量很高。 我们很难一开始就搭建出上面这个复杂的架构。都是一步一步演进来的。 1.最开始——All in one 2. 将数据服务和应用服务进行分离,给应用服务器配置更好的CPU,给数据服务配置更好的硬盘。 3。 继续,增加分布式缓存和本地缓存。80%的业务访问都集中在20%的数据上,将这20%的数据缓存下来,那么性能一下子就提升上来了。那么...
深入理解B/S与C/S架构
TwcatL_tree
06-30 5971
阅读目录: 什么是C/S架构 什么是B/S架构 B/S架构的几种形式 发展前景   一、什么是C/S架构 C/S架构是第一种比较早的软件架构,主要用于局域网内。也叫 客户机/服务器模式。 它可以分为客户机和服务器两层: 第一层:  在客户机系统上结合了界面显示与业务逻辑; 第二层:  通过网络结合了数据库服务器。 简单的说就是第一层是用户表示层,第二层...
B/S架构及其运行原理 #CSDN博文精选# #IT技术# #软件模式# #架构模式#
CSDN高校俱乐部官方博客
02-14 5827
大家好,小C将继续与你们见面,带来精选的CSDN博文~ 又到周一啦,上周的系统化学习专栏已经结束,我们总共一起学习了20篇文章,这周将开启全新专栏《放假不停学,全栈工程师养成记》 在这里,你将收获: 将系统化学习理论运用于实践,系统学习IT技术 学习内容涵盖数据库、软件测试、主流框架、领域驱动设计和第三方生态等,离全栈工程师更近一步 精心整理的CSDN技术大咖博文,假期学习实现弯道超车 新年快乐!春节过后的学习脚步不能停下,小C今天推荐的是仍然是关于“软件模式”的博文!继续巩固学习! 本文转载自
网站系统开发需要掌握的技术
balaxu6584的博客
01-20 1231
1、JDBC 技术   在Java Web应用开发中,数据库管理系统(RDBMS)的使用是不可缺少的。JDBC(Java Database Connectivity) 是一种用于执行 SQL 语句的 Java API。它由一组用 Java 编程语言编写的类和接口组成。JDBC 为工具/数据库开发人员提供了一个标准的API,使他们能够用纯Java API 来编写数据库应用程序。 简单地...
B/S架构与C/S架构比较
tangyuanzhijian的专栏
11-09 1137
B/S架构与C/S架构比较 一、 什么是C/S和B/S   要想对“C/S”和“B/S”技术发展变化有所了解,首先必须搞清楚三个问题。   1. 什么是C/S架构 C/S (Client/Server)架构,即大家熟知的客户机和服务器架构。它是软件系统体系架构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到 Client端和Server端来实现,降低了系统的通讯开销。目前大多数应用
B/S和C/S的区别
baiseda
07-24 751
B/S和C/S的区别 一、什么是CS和BS结构? 1.C/S又称Client/Server或客户/服务器模式。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix或SQLServer。客户端需要安装专用的客户端软件。 2.B/S是Brower/Server的缩写,客户机上只要安装一个浏览器(Browser),如Netscape Navi...
重视B/S架构系统的发展和开发设计理念
麦田专栏
09-11 2724
      随着网络技术的快速发展,b/s架构系统也更加流行和突出。很多从c/s架构或者没有涉及B/S开发的程序员都普遍认为Web开发只是小菜一碟,而往往带着这种思想去开发B/S架构系统会带来很多麻烦,造成系统框架不合理、系统界面丑陋无比、系统运行效率低下、系统安全性低下等一系列后遗症,对商业系统更是一种糟蹋……     因此Web系统的观念需要正确对待,他已经不是单纯
windows文件系统演化
最新发布
04-17
Windows文件系统演化可以追溯到早期的MS-DOS操作系统。以下是Windows文件系统的主要演化过程: 1. FAT文件系统(File Allocation Table):FAT是早期Windows操作系统使用的文件系统,它使用了一个文件分配表来跟踪文件的存储位置。FAT文件系统存在一些限制,如文件名长度限制、文件大小限制等。 2. FAT32文件系统:FAT32是对FAT文件系统的改进,它支持更大的磁盘容量和更长的文件名。FAT32文件系统在Windows 95 OSR2和Windows 98中得到广泛应用。 3. NTFS文件系统(New Technology File System):NTFS是Windows NT系列操作系统引入的高级文件系统。它提供了更高的性能、更好的安全性和更强大的功能。NTFS支持更大的磁盘容量、更长的文件名、文件权限控制、数据压缩、加密等功能。 4. ReFS文件系统(Resilient File System):ReFS是Windows Server 2012引入的新一代文件系统,旨在提供更高的可靠性和可扩展性。ReFS支持更大的磁盘容量、更高的数据完整性、快速修复和数据一致性检查等特性。 5. exFAT文件系统(Extended File Allocation Table):exFAT是一种用于移动存储设备的文件系统,它支持更大的文件和磁盘容量,并具有较好的兼容性。exFAT广泛应用于闪存驱动器、外部硬盘和其他可移动存储设备。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • ASCII码16进制对照表 68596
  • 利用百度云盘API上传文件至百度云盘 42305
  • 一文读懂什么是CTO、技术VP、技术总监、首席架构师 36282
  • 一键将Python2代码自动转化为Python3 33612
  • 2019-nCoV 全国新型肺炎疫情每日动态趋势可视图 30973

分类专栏

  • 企业管理 6篇
  • SpringBoot 2篇
  • .Net 1篇
  • 物联网 2篇
  • 产品管理 21篇
  • 产品经理 16篇
  • 项目经理 8篇
  • 战略管理 4篇
  • 产品运维 18篇
  • 云服务器 4篇
  • 云计算 12篇
  • VUE 12篇
  • vue3 21篇
  • 信息化 3篇
  • 小程序 1篇
  • H5开发 1篇
  • 项目管理 21篇
  • 云原生 7篇
  • ffmpeg 1篇
  • 分布式架构 43篇
  • 微服务 46篇
  • 设计模式 2篇
  • Net Core 3篇
  • SpringCloud 12篇
  • ABP 1篇
  • .NetCore 11篇
  • 网络协议 1篇
  • 系统集成 1篇
  • DevOps 13篇
  • 开源架构 1篇
  • 多线程 14篇
  • 存储 10篇
  • 网页编码 6篇
  • Windows 4篇
  • QuillEditor 1篇
  • Dot Net 4篇
  • TS 3篇
  • SQL 4篇
  • 区块链 3篇
  • 元宇宙 4篇
  • 产品运营 7篇
  • Win11 1篇
  • flex 1篇
  • Css 2篇
  • VsCode 3篇
  • ES6 2篇
  • js 3篇
  • 表单验证 1篇
  • 互联网 11篇
  • nginx 2篇
  • Spring 9篇
  • NoSql 1篇
  • C++ 1篇
  • 智慧教育 3篇
  • 数字化 3篇
  • 消息队列 3篇
  • http 3 2篇
  • web3 2篇
  • 教育 2篇
  • Redis  3篇
  • IOC 1篇
  • ASP.NET Core 1篇
  • ORM 1篇
  • ECMAScript 1篇
  • CTO 1篇
  • IDEA 3篇
  • Kafka 2篇
  • 低代码 3篇
  • Dubbo 1篇
  • 算法 3篇
  • MongoDB 1篇
  • IntelliJ IDEA  6篇
  • ubuntu 1篇
  • WSL 3篇
  • Saas 1篇
  • 中台 1篇
  • 程序人生 1篇
  • IT行业 1篇
  • Node 1篇
  • 电子书 1篇
  • pdf 1篇
  • Git 2篇
  • golang 1篇
  • API 3篇
  • VBA 1篇
  • IDE 1篇
  • mpvue 1篇
  • VS 1篇
  • 管理 5篇
  • 程序开发 22篇
  • MySql 6篇
  • 数据库 18篇
  • linux 3篇
  • 服务器 8篇
  • maven 2篇
  • 人工智能 22篇
  • 视频处理 3篇
  • 正则 2篇
  • 教育行业 4篇
  • Tomcat 1篇
  • JBOSS 1篇
  • tcp 2篇
  • vim 1篇
  • Redis 4篇
  • Docker 7篇
  • 后端 37篇
  • 机器学习 3篇
  • 大数据 28篇
  • jquery 9篇
  • sql清理日志 1篇
  • 批量清理日志 1篇
  • sql数据库 14篇
  • 备份 2篇
  • 迁移 3篇
  • 复制 1篇
  • 分离 2篇
  • 附加 2篇
  • sql 文件存在 1篇
  • React 8篇
  • Python 38篇
  • pdfjs h5 1篇
  • 架构 20篇
  • javascript 33篇
  • 微信小程序 1篇
  • android开发 42篇
  • 排版 3篇
  • 布局 9篇
  • 移动开发 22篇
  • iisExpress 1篇
  • webApi 14篇
  • WebApiTestClient 1篇
  • swagger-ui 1篇
  • Swashbuckle 1篇
  • OkHttp3 1篇
  • OAUTH 2.0 1篇
  • Java 67篇
  • C# 40篇
  • 操作系统 31篇
  • sqlite 1篇
  • 前端 84篇
  • Android Studio 11篇
  • SVN 1篇
  • Andorid 11篇
  • 研发管理 37篇
  • 架构设计 47篇
  • 测试 8篇
  • wpf 5篇
  • 集群 8篇

最新评论

  • 设置git自动补全功能(windows版本)

    JackieZhengChina: 可以考虑下clink

  • 设置git自动补全功能(windows版本)

    放小白: 亲测不行

  • [转]【精选】Win10下LoadRunner12 下载安装汉化图文教程(含LoadRunner安装包)

    m0_52322441: 怎么知道有没有代理证书

  • 单元测试,到底什么是单元测试,为什么单测这么难写

    lmhhhh8: 写的很棒

  • VS2019 停止WEB项目调试时 保持IIS Express 不关闭

    钢铁慈猫: .netCore并不是IIS运行,当然不可以,在说core本身能用 dotnet run命令启动根本不需要设置这个。

最新文章

  • 短短两年下滑40%!世界最好语言PHP为何哑火了?
  • 任正非的147条思考:值得每天读一遍
  • 把 Spring Boot 项目从 18.18M 瘦身到 0.18M,部署超级快!
2024
05月 3篇
04月 88篇
03月 28篇
02月 7篇
01月 16篇
2023年78篇
2022年256篇
2021年43篇
2020年54篇
2019年153篇
2018年71篇
2017年22篇
2016年2篇
2015年3篇
2014年2篇
2013年5篇
2012年1篇
2011年1篇
2009年1篇
2008年1篇

目录

目录

分类专栏

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳SEO优化公司垦利百姓网标王推广横岗网站优化多少钱沧州网页制作价格运城网站推广方案价格酒泉百姓网标王哪家好宝鸡外贸网站设计公司揭阳网站优化推荐崇左网站优化按天收费价格昆明百度标王公司海口关键词排名包年推广公司甘孜网站建设设计价格辽阳百度竞价推荐沈阳企业网站设计多少钱忻州外贸网站制作价格南通百度竞价包年推广泸州建站价格林芝网站搭建报价福永优化报价天门网站排名优化报价黑河百搜标王哪家好吉祥百度标王哪家好醴陵推广网站价格鸡西设计网站价格大鹏关键词排名包年推广多少钱红河百度竞价包年推广价格重庆网站设计推荐荆州营销型网站建设报价长葛如何制作网站文山外贸网站设计报价通化百度seo歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化