news 2026/5/25 20:59:20

大型HTTP服务器架构演进全解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
大型HTTP服务器架构演进全解析

大型 HTTP 服务器架构演进路线及思路

一个成熟的大型后端服务器(如京东、淘宝等)并不是一开始的设计就具备完整的高性能、高可用、高安全等特性。它是随着业务和用户量的增长,业务功能不断地扩展演化而来的。在这个过程中,团队的增加带来开发模式的转变,性能瓶颈带来技术架构及设计思想的改变。随着业务的增长,开始出现业务功能的侧重点,如微信在发展成十亿级别的用户体量后,业务侧重的就是如何解决数十亿用户实时消息传输的通达性,百度慢慢地发展为如何处理海量数据的搜索请求。这些技术架构方案及思想,各有各的不同,无法一蹴而就,而是业务驱动。本节无法详尽提及每一种架构的设计方案,而只提供一种通用的思想,这些思路广泛应用于现在大型的后端服务器设计架构中,希望读者在具体的项目中,随着业务的增长,能从这里找到一些思路。下面将从服务器的演进路线进行讲解。

1. 项目初期

在项目的初期,一般为了抢夺市场时间窗口,产品需要快速推向市场。此时,访问量低,业务单一,对服务器要求不高。正如本小册的方式,应用程序、数据库和文件全部放在单一的服务器中,如下图所示。

但需要注意的是,单一不代表粗糙,应用程序设计阶段,应秉承解耦的思想,各业务组件之间相对独立,各层级清晰,如本小册的 views 模块分层逻辑、数据库处理模块化等。

2. 应用程序、数据、存储分离

随着业务的发展,单台服务器已无法满足业务需求,此时应将应用程序、数据库和存储进行拆分,将其各自部署在不同的服务器上。

3. 负载均衡

当服务器的访问量大于单台服务器能提供的能力时,此时需要部署多台服务器进行横向扩展。在服务器集群前增加负载均衡器,以使访问流量通过负载均衡器能均衡地分配到后端服务器集群上,以此来满足大流量、高并发、海量数据请求问题。目前主流的负载均衡分软件和硬件两种,软件有主流的 Nginx,硬件需要购买专门的负载均衡器设备,成本较高,但处理能力更强。

4. 缓存技术

缓存技术能大大提高服务器性能,世间万物大多遵循 2/8 原则,用在这里,即 80% 的访问量落在 20% 的业务数据上。对热点数据(20%)进行跟踪并进行缓存,能大大提高访问效率。缓存分为文件缓存、内存缓存及数据库缓存。缓存主要分两种,一是使用本地缓存,另一种是分布式缓存。本地缓存一般用于单机模式,缓存数据量有限;而分布式缓存可以缓存海量数据,易扩展,容灾性强,常用的分布式缓存有 Memcache 及 Redis。

在缓存技术中,还有一个重量级的服务,叫 CDN。简单讲,即就近接入,提高用户访问速度。当目标用户分散在全国各地,此时部分用户受地域、网络等限制,访问服务器存在延迟问题,特别是点播、直播等场景。CDN 就是这样的一种技术,它能将源站点内容抓取分发到最接近用户的节点,从而提高用户的访问速度和提升用户体验。

5. 分布式文件系统

随着用户数据的增长,产生的文件也越来越多,单台文件服务器已无法满足业务需要,需采用分布式文件系统以支撑。常见的分布式文件系统有 NFS。

6. 应用程序拆分

随着业务的发展,应用程序进一步膨胀,此时已不适合将其所有的组件部署在一起,而是需要按业务模块进行应用程序的拆分。每个业务模块负责相对独立的业务运作,包括版本迭代更新、业务演进。业务模块之间通过数据库或消息请求进行处理。现在主流的业务模块通信会使用 RESTful API 进行通信。各业务模块有自己的缓存系统、文件服务器系统和分布式数据库系统。

以上即为通用大型服务器方案架构演进路线。

小结

本小节简单高度概括了服务器端演进的整个过程。这里只提供一些思路,具体的架构和方案还要看具体的项目而行。后台架构方案可以千差万别,适合自己业务模式的才是最好的。

上面提到的很多技术,如负载均衡、CDN 分发、分布式缓存和分布式数据库等,在传统的架设中,从物理连线到软件安装,都需要人力投入。自从公有云服务推出后,这些技术已经作为公有云的基础设施推给客户。现在的企业,不用再自己去购买硬件设备并维护机房,而只需要通过购买服务的方式搭建这个业务生态环境,大大提高了工作效率及管理效率。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/25 17:45:41

mybatis-动态sql语句-<foreach>

循环遍历集合/数组,把集合元素拼接成sql片段,动态处理多个参数的场景就比如:简单场景的:构建IN条件、批量查询用户列表、一次插入多个用户,多对多关联表等等属性属性作用collection要遍历的集合/数组/Map的keyitem …

作者头像 李华
网站建设 2026/5/24 14:26:39

6张表单,管好大客户销售从线索到赢单的全流程

大客户销售这几年越来越难。 需求不稳定、预算紧绷、竞争激烈不少企业这时候会想:“是不是得换 CRM?”其实你冷静一下会发现,问题不是系统,而是你根本没有把销售流程盘实,把关键信息结构化起来。CRM 再贵,再…

作者头像 李华
网站建设 2026/5/24 14:37:00

Leetcode刷题日记15(141-150)

目录 问题1:问题链接:问题描述:实例:代码: 问题2:问题链接:问题描述:实例:代码: 问题3:问题链接:问题描述:实例&#xff1…

作者头像 李华
网站建设 2026/5/24 21:34:08

LobeChat颁奖典礼获奖感言生成

LobeChat:开源时代下的AI交互新范式 在生成式AI席卷全球的今天,我们早已不再满足于“能对话”的聊天机器人。真正的挑战在于——如何让强大的语言模型变得真正可用、可定制、可信赖?当主流平台将用户锁定在封闭生态中时,一个来自开…

作者头像 李华
网站建设 2026/5/25 8:21:02

【必收藏】LLM大模型原理全解析:从预训练到RLHF,一文带你彻底搞懂大语言模型的神奇魔法

文章详细解析了大语言模型(LLM)的核心原理和训练流程,包括预训练阶段通过海量无标注数据建立通用知识,微调阶段针对特定任务进行参数调整,以及强化学习(RL)和基于人类反馈的强化学习(RLHF)如何使模型具备动态自适应能力。文章还介绍了从数据准…

作者头像 李华