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


    前言

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

    一、部署架构设计

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

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

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

    购买CDN服务

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

    二、系统内部架构设计

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

    缓存

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

    动静分离

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

    限流熔断降级

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

    队列削峰

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

    数据库优化

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

    三、前端访问控制

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

    恶意请求拦截

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

    防重复提交机制

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

    验证码机制

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

  • 相关阅读:
    【计算机系统结构】指令级高度并行的超级计算机
    一文读懂Web3 结算协议 Zebec Protocol 的商业模式与发展前景
    sql语句中查重复数据
    npx expo start -c 屏幕白屏
    千“垂”百炼:垂直领域与语言模型(1)
    泛型「generic」讲解
    编译版本问题androidx.appcompat:appcompat-resources 引用错误
    前端基础:防抖与节流
    北斗导航 | GBAS:双星座/双频点 CAT II/III 完好性(DC/DF GBAS Integrity)
    京东小程序:无代码开发实现API集成,连接电商平台、CRM和客服系统
  • 原文地址:https://blog.csdn.net/qq1309664161/article/details/126404929