美文网首页高可用分布式架构微服务架构
通过优化系统架构提升系统负载能力,即提高系统并发量。

通过优化系统架构提升系统负载能力,即提高系统并发量。

作者: 前浪浪奔浪流 | 来源:发表于2022-06-21 18:38 被阅读0次

    一、什么是高并发

    image.png

    高并发是互联网系统所面临的普通问题,也是系统架构时考虑的重要因素之一。
    【并发与负载】是相对的两个词。
    想实现高并发,就要提高系统负载能力。系统负载能力强了,自然可以处理高并发请求。
    所以,实现高并发,本质就是提高系统的负载能力。
    一般对于系统负载能力的评估参数有:响应时间 、吞吐量、每秒请求数QPS、并发用户数。
    响应时间:系统对请求做出响应的时间。例如系统处理一个HTTP请求需要200ms,这个200ms就是系统的响应时间。
    吞吐量:单位时间内处理的请求数量。
    QPS:每秒响应请求数,与吞吐量概念类似。
    并发用户数:同时使用系统功能的用户数量。

    二、如何提高并发处理能力(并发数)

    需要说明的是:以下内容不考虑【带宽】和【硬件配置】这两个因素。
    很显然,带宽高、硬件配置高,系统负载能力就强,能处理的并发用户数就多。
    那么如何提高并发处理能力呢?
    答案就是:通过优化系统架构来提高并发处理能力。
    并且系统架构设计是一个复杂的过程,不仅涉及到技术层面,还包括业务层面。

    三、通过业务拆分提高并发处理能力(微服务架构)

    image.png

    将一个系统拆分为多个子系统,每个子系统负责一个单独的服务,这就是常说的【服务治理】
    拆分为多个子系统后,每个子系统(服务)独立运行,每个服务之间通过REST/RPC方式调用,用户也可以直接调用这些服务接口。
    这种设计将大化小,这种架构也称为【微服务架构】。
    举例:商城系统中,可拆分为【订单服务】【用户服务】【产品服务】等多个服务接口。

    四、通过水平扩展提高并发处理能力

    这一块要分开来讲。

    1. 前端部分


      image.png

      使用nginx反向代理软件提高并发处理量
      nginx进行水平扩展:DNS轮询等

    2. 应用服务器部分


      image.png

      java中常见的应用服务器tomcat为例,它可以实现集群和负载均衡。集群配置成功后,相当于提供了一个“服务器池”,如果想要再提高处理能力,只需要向“池”中继续添加应用服务器即可。另外,集群也实现了系统高可用。

    3. 数据库层面
      常见的分库分表,读写分离都是解决数据库压力大的方法之一。
      数据库瓶颈是系统在运行中最先碰到、最常碰到的问题之一。
      经常见到的问题就是磁盘IO高,导致处理缓慢。
      刚才所说方法都可以解决这一问题。
      常见的分表原则有:按范围分,按哈希值分。

    4. 缓存层面


      image.png

      在系统中添加缓存是当前必选的方案。
      添加缓存的主要目标是减少磁盘IO。
      可以缓存的内容很多,例如缓存页面内容(HTML,CSS,图片),缓存应用服务器中数据对象等。
      通过设计多级缓存,实现数据的快速获取、请求的快速响应。
      在分布式架构中,还要注意分布式缓存的更新一致性问题。(不再详述)

    五、最后

    其实很多系统的并发数都不到百万级,只有少量头部网站才会有,例如淘宝。
    但我们之所以研究如何解决百万级并发架构,是从中学会和掌握【系统架构演变过程】。
    系统架构设计的原则是:适合的就是最好的。不能刚开始架构就要满足百万级,因为这样设计会提高成本,造成资源浪费。

    所以,我们要明白:系统架构是演进的。

    转载自https://blog.csdn.net/daocaokafei/article/details/115410761

    相关文章

      网友评论

        本文标题:通过优化系统架构提升系统负载能力,即提高系统并发量。

        本文链接:https://www.haomeiwen.com/subject/dqpevrtx.html