找回密码
 立即注册
搜索
查看: 29|回复: 0

网站架构-架构网站服务器的软件-架构网站服务器有哪些

[复制链接]

2万

主题

0

回帖

6万

积分

管理员

积分
63634
发表于 2025-4-26 17:08:44 | 显示全部楼层 |阅读模式
大部分前端同学而言,后台服务或者整个网站架构是黑盒。前端工程师所看到和接触到的业务只是冰山一角。

本文从前端人的视角出发,以一张大型网站架构图为开端,将这个如同潘多拉魔盒般的事物打开……所做的只是概括性的介绍以及提纲式的分析讲解。

李智慧老师《大型网站技术架构 - 核心原理与案例分析》第一章有图示。

.png

1. 接收请求

反向代理服务器接受请求,根据具体内容路由到不同的服务器。

如果浏览器请求的是诸如 HTML 文件之类的资源文件,或者是样式表等。倘若浏览器请求的是动态资源,例如 REST 请求,那么就将其路由至“负载均衡调度服务器”,接着由后台应用服务器集群来进行处理。将业务进行拆分,拆分成多个服务,这些服务相互协作以完成请求。

传统方式下后台仅有一个服务,此服务涵盖众多方面。随着项目逐渐变得复杂,依据“高内聚,低耦合”的理念,把业务划分成独立的模块,并分别进行部署。其中就有图中的“B 应用服务器 1”以及“A 应用服务器 1”等。

那么,如何拆分业务?



业务进行了拆分,这样一来,每个子系统都能够由专门的团队和部门来负责。通过这种方式,可以解决模块之间的耦合以及扩展性问题。同时,每个子系统还可以单独进行部署,这样就能避免因为集中部署而导致一个应用出现故障时,全部应用都不可用的情况。

下一步,如何组织子业务完成某一具体任务?

举例,用户下单流程:

用户下单之后,会将相关信息写入消息队列,接着直接把结果返回给客户端。库存子系统会读取消息队列中的信息,以此来完成库存的减少操作。配送子系统会读取消息队列里的信息,然后进行配送工作。

这个过程会利用“消息队列服务器”来进行异步调度所需的服务,从而协同完成业务。

3. 部署分布式服务

为提高高并发处理能力,可把请求分发至应用服务器集群里的任意一台服务器。即把相同的服务部署到 N 台服务器上,让这些服务器一同处理用户请求,以此最大程度降低每个服务所承受的压力。

可用到的负载均衡算法:

4. 利用缓存



缓存分为本地缓存和远程缓存。

分布式缓存服务器会把缓存数据分别存储在 N 台服务器上。通过增加服务器的数量,能够使存储容量得以扩大。

为什么需要分布式缓存?

利用分布式缓存能够实现单点登录。例如,在登录之后,当希望再次访问时,就无需再次进行登录。在这种情况下,不应当把与登录相关的信息存放在本地服务器缓存里,因为各个服务器的信息是不共享的。而应该将其存放在分布式缓存中,并提供一个统一的访问模块——服务器,该服务器用于为其他所有应用服务提供读写功能。

5. 处理数据

处理数据需要访问存储数据的容器。这种容器不仅包含常见的关系数据库,像 MySQL 和 SQL 等;还包含非关系数据库,例如 NoSQL 等。

参考图示和“统一数据访问模块”交互的数据服务器:

如有错漏之处,望指正。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|【远见汇智】 ( 京ICP备20013102号-17 )

GMT+8, 2025-5-5 13:25 , Processed in 0.070643 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表