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


    前言

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

    一、部署架构设计

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

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

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

    购买CDN服务

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

    二、系统内部架构设计

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

    缓存

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

    动静分离

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

    限流熔断降级

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

    队列削峰

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

    数据库优化

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

    三、前端访问控制

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

    恶意请求拦截

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

    防重复提交机制

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

    验证码机制

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

  • 相关阅读:
    自定义hooks函数
    Redis之性能指标、监控方式
    《Python机器学习与可视化分析实战》简介
    基于JavaSwing开发远程控制系统 课程设计 大作业源码 毕业设计
    安装speechmetrics报错:可能是pip的问题,建议直接下载zip
    vscode左键无法跳转到定义的文件
    ubuntu OCR 脚本
    java计算机毕业设计智慧问诊系统源码+数据库+系统+lw文档
    RabbitMQ(十一)【高级 - 分布式事务】
    【SwiftUI模块】0013、SwiftUI搭建-类似蚂蚁财富的基金累计盈亏的走势图
  • 原文地址:https://blog.csdn.net/qq1309664161/article/details/126404929