架构师的视角进行全链路系统性能的优化

简介: 一、前端优化前端的优化主要有三个环节:减少请求次数、页面静态化、边缘计算减少请求次数:减少前端脚本与后端服务的请求次数,有三种方案(1)增加缓存控制:前端开发经常设置HTML的缓存控制头部(Cache-Control头),这样浏览器在请求同一个文件的时候,只访问本地保存的资源副本,从而加速文件的访问速度。

一、前端优化

前端的优化主要有三个环节:减少请求次数、页面静态化、边缘计算

减少请求次数:减少前端脚本与后端服务的请求次数,有三种方案

(1)增加缓存控制:前端开发经常设置HTML的缓存控制头部(Cache-Control头),这样浏览器在请求同一个文件的时候,只访问本地保存的资源副本,从而加速文件的访问速度。

(2)减少图像的请求次数:大部分网站会将所用到的多张图片拼成一张,这样多张图片只需要下载一次,然后再通过CSS中的background-image和background-position来定位目标位置选择显示哪一张图片。

(3)减少脚本的请求次数:通用的做法是CSS压缩和JavaScript压缩,将多个文件压缩成一个,目的是减少传输文件的大小,而更重要的是减少请求数。

页面静态化:页面静态化是缓存的一种方式,相当于把整个页面元素缓存起来。通常是将页面文件事先存储到CDN节点中,比如将商品详情页做静态化,就是将商品详情页的页面元素存储在CDN节点,然后所有请求就可以直接由CDN来提供服务,就不会打到后端服务了,这样就减少了对后端服务的压力。

边缘计算,因为大数据处理的实时性越来越高,由集中式的服务系统提供实时性的计算能力捉襟见肘,所以将计算能力放到距离用户最近的CDN节点中,这就要求原有的CDN节点不只作为静态资源文件的缓存,还要提供可以定制化的计算能力。例如无服务架构Serverless、BaaS、FaaS。

二、后端优化

后端环节的性能问题,可以从基础设施层面、网络层面、架构层面三个角度进行考量。
image.png

架构师的视角进行全链路系统性能的优化
网络层面可以考虑网络专线、CDN 优化;架构层面可以考虑动静分离、集群优化、数据隔离、服务拆分、异步驱动、负载均衡等方案。

三、如果要设计一个高性能的架构,至少要有以下四个系统设计的思考步骤。

(1)明确指标: 比如当系统小于 100 万并发用户时,要保证系统的 RT = 2s 。

(2)保护系统: 当系统的并发用户数量超过 100 万,要做到保证有 100 万用户的 RT= 2s ,然后保护系统,并拒绝其他用户的连接请求。

(3)用户体验: 为了用户体验,要给系统承载容量外的用户提供优雅的体验,比如服务器排队机制,并附加具体、明确的信息提示。

(4)快速扩容: 现在系统的性能指标有一点就是贵在快速反应,比如出现流量压力时,可以在 3 分钟内完成扩容,并保证扩容后能承载的并发用户数量的 RT = 2s。

四、高性能架构的落地工作,需要分为以下三个关键技术点。

(1)做好系统限流: 通过流量控制来保证系统的稳定性。当实际并发压力超过系统性能设计指标的时候,就拒绝新的请求的连接,让用户进行排队。

(2)做好快速扩容: 对于扩容能力,一般要储备额外的计算资源,用于不时之需,也就是事先通过预估留出一部分资源池。另一个关键因素是系统的扩容速度。

(3)做好系统优化: 就是上面的前后端优化的技术点,同时性能设计要贯穿于系统建设的始终。对于性能设计(不仅仅是性能设计,所有非功能性的设计)要在项目的各阶段都进行考虑,以便根据项目过程的推进随时进行调整和优化。

目录
相关文章
|
10天前
|
前端开发 JavaScript BI
如何开发车辆管理系统中的车务管理板块(附架构图+流程图+代码参考)
本文介绍了中小企业如何通过车务管理模块提升车辆管理效率。许多企业在管理车辆时仍依赖人工流程,导致违章处理延误、年检过期、维修费用虚高等问题频发。将这些流程数字化,可显著降低合规风险、提升维修追溯性、优化调度与资产利用率。文章详细介绍了车务管理模块的功能清单、数据模型、系统架构、API与前端设计、开发技巧与落地建议,以及实现效果与验收标准。同时提供了数据库建表SQL、后端Node.js/TypeScript代码示例与前端React表单设计参考,帮助企业快速搭建并上线系统,实现合规与成本控制的双重优化。
|
23天前
|
人工智能 监控 测试技术
告别只会写提示词:构建生产级LLM系统的完整架构图​
本文系统梳理了从提示词到生产级LLM产品的八大核心能力:提示词工程、上下文工程、微调、RAG、智能体开发、部署、优化与可观测性,助你构建可落地、可迭代的AI产品体系。
311 51
|
17天前
|
机器学习/深度学习 人工智能 缓存
面向边缘通用智能的多大语言模型系统:架构、信任与编排——论文阅读
本文提出面向边缘通用智能的多大语言模型(Multi-LLM)系统,通过协同架构、信任机制与动态编排,突破传统边缘AI的局限。融合合作、竞争与集成三种范式,结合模型压缩、分布式推理与上下文优化技术,实现高效、可靠、低延迟的边缘智能,推动复杂场景下的泛化与自主决策能力。
106 3
面向边缘通用智能的多大语言模型系统:架构、信任与编排——论文阅读
|
18天前
|
机器学习/深度学习 数据可视化 网络架构
PINN训练新思路:把初始条件和边界约束嵌入网络架构,解决多目标优化难题
PINNs训练难因多目标优化易失衡。通过设计硬约束网络架构,将初始与边界条件内嵌于模型输出,可自动满足约束,仅需优化方程残差,简化训练过程,提升稳定性与精度,适用于气候、生物医学等高要求仿真场景。
123 4
PINN训练新思路:把初始条件和边界约束嵌入网络架构,解决多目标优化难题
|
15天前
|
人工智能 自然语言处理 安全
AI助教系统:基于大模型与智能体架构的新一代教育技术引擎
AI助教系统融合大语言模型、教育知识图谱、多模态交互与智能体架构,实现精准学情诊断、个性化辅导与主动教学。支持图文语音输入,本地化部署保障隐私,重构“教、学、评、辅”全链路,推动因材施教落地,助力教育数字化转型。(238字)
|
22天前
|
消息中间件 数据采集 NoSQL
秒级行情推送系统实战:从触发、采集到入库的端到端架构
本文设计了一套秒级实时行情推送系统,涵盖触发、采集、缓冲、入库与推送五层架构,结合动态代理IP、Kafka/Redis缓冲及WebSocket推送,实现金融数据低延迟、高并发处理,适用于股票、数字货币等实时行情场景。
146 3
秒级行情推送系统实战:从触发、采集到入库的端到端架构
|
19天前
|
缓存 运维 监控
Redis 7.0 高性能缓存架构设计与优化
🌟蒋星熠Jaxonic,技术宇宙中的星际旅人。深耕Redis 7.0高性能缓存架构,探索函数化编程、多层缓存、集群优化与分片消息系统,用代码在二进制星河中谱写极客诗篇。
|
19天前
|
Cloud Native Serverless API
微服务架构实战指南:从单体应用到云原生的蜕变之路
🌟蒋星熠Jaxonic,代码为舟的星际旅人。深耕微服务架构,擅以DDD拆分服务、构建高可用通信与治理体系。分享从单体到云原生的实战经验,探索技术演进的无限可能。
微服务架构实战指南:从单体应用到云原生的蜕变之路
|
3月前
|
缓存 Cloud Native Java
Java 面试微服务架构与云原生技术实操内容及核心考点梳理 Java 面试
本内容涵盖Java面试核心技术实操,包括微服务架构(Spring Cloud Alibaba)、响应式编程(WebFlux)、容器化(Docker+K8s)、函数式编程、多级缓存、分库分表、链路追踪(Skywalking)等大厂高频考点,助你系统提升面试能力。
170 0