设计一个高并发高性能系统需要考虑哪些方面

前言

如何设计高并发系统,是需要根据系统具体需求业务以及数据量、访问量等因素综合分析才能得出的。这里只是简单记录一下提高系统并发和性能的一些常用方法和手段,以便于在系统设计时,有思考的方向。
我将提升系统并发和性能的方面分为部署设计,系统内部架构设计,前端访问控制三方面。

一、部署架构设计

部署架构设计是一个很大的概念。不光涉及到软件的部署,还涉及到硬件的部署架构,网络的部署架构等等因素。对于一个软件程序员而言,其他方面的部署架构设计也不懂,这里只记录一下软件方面的部署架构设计。

系统服务单一职责+集群部署

最简单粗暴的方式就是加机器,加集群。然后采用负载均衡,来提升系统的访问量。将整个大的系统,拆分成多个小系统,每个小系统进行集群部署,最大限度提升系统性能。
当然这里的集群不单单是应用服务的集群了。例如反向代理用nginx的话,nginx集群也需要搭建起来。总之就是相关服务的集群都要搞起来。

购买CDN服务

关于CDN的理解可以参考两篇文章:前端理解CDN面向前端的CDN 原理介绍
简单理解就是CDN服务会寻找客户端最近的服务器去访问,并会缓存前端的图片,视频,html,js,css等相关的内容,使用户更快获取到前端资源的一种技术手段。

二、系统内部架构设计

部署架构设计主要是花钱加机器,购买服务的方式提升系统并发和性能。而系统内部,也需要做出一系列优化措施,来提升服务的并发度和性能。这样既可以节省一部分部署所花费的资金,也能体现出程序员所在的价值。如果系统不做任何优化,纯靠加钱来提升性能,那还需要高级程序员干啥呢,省下来高级程序员的工资来加机器不就得了吗。
系统内部性能优化主要从缓存、动静分离、限流熔断、队列削峰、数据库优化几个方面考虑。

缓存

加入缓存设计,减少数据库压力,同时减少请求响应时间,以此提升系统性能。

动静分离

使用nginx做好动静分离,减轻后台服务器压力。

限流熔断降级

加入限流、熔断降级框架和功能,提高系统高可用性。

队列削峰

采用MQ做高并发请求的缓冲载体,削峰填谷,提升系统的稳定性,避免大流量冲垮系统。

数据库优化

分库分表的设计、数据库表索引优化等手段。根据具体业务场景而定。

三、前端访问控制

前端也需要采用一些手段,来提升系统的并发和性能,主要手段有:恶意请求拦截、防重复提交机制、验证码机制等等。

扫描二维码关注公众号,回复: 14494874 查看本文章

恶意请求拦截

这个功能后端也可以完成,避免恶意攻击服务器。

防重复提交机制

例如提交的表单不能重复提交。防止用户一直点某个按钮,一直发送请求到后台。

验证码机制

验证码机制也是一种防恶意攻击和错峰提交的手段。例如,在某个热点功能的提交动作,加入输入验证码机制,来错开大量用户同时提交请求的情况出现。电商中的加入购物车操作,也是错峰提交的一种手段。

猜你喜欢

转载自blog.csdn.net/qq1309664161/article/details/126404929