分布式系统架构解决的三大问题

分布式系统定义:建立在网络之上的软件系统,彼此之间通过消息传递进行通信和协调的系统,展现给用户是一个统一的整体。

分布式系统架构需要解决三大问题

  • 吞吐量
  • 可用性
  • 可扩展
  • 什么是吞吐量?

    能接收多少请求,能返回多少请求。一般单位时间内能处理多少请求,如每秒处理多少请求,一般叫QPS,如果更严格的QTS每秒处理事务数

    这里有几个概念表达同一件事

    1.吞吐量:指QPS

    2.并发量:指同一时间内的连接数

    3.性能:指响应时间

    这里数据来源于压测,并发量越大,QPS也会升高,在并发量一定范围内响应时间是不变的,当并发量无线增大时,响应时间会增高,增高到一定程度就会下降。

    如何提升吞吐量?

    单机性能不足需要扩容部署,多台机器同时提供服务,形成集群部署,流量请求过来均匀的把流量分配到每台机器。如果依然存在瓶颈,先扩容后找原因,最终决定性能的可能不是应用系统,可能是数据库,因为它是长连接独占的同步交互。如果数据库性能不足,应用扩容太多也没有用,因为最终流量都要达到数据库中,因此数据库也需要扩容。

    总结:要想提升吞吐量,唯一解决办法就是扩容,扩容不但解决消息堆积问题,还能提升请求耗时。

    如何提升可用性?

    解决可用性的唯一手段就是冗余,冗余就要解决副本与副本之间的一致性问题,分布式一致性问题就构成了分布式理论的核心,即CAP问题。

    C:一致性

    A:可用性

    P:分区容错性

    分布式场景中当发生故障时P是必须存在,当解决一致性时无法解决可用性,当解决可用性时无法解决一致性,所以三种不都能同时满足,只能选择任意两种。要么选择CP,要么选择AP。注意只有在发生故障时才会这么选择,当正常场景下三种均满足。

    如何解决扩展性

    扩展性分功能扩展和集群扩展。

    • 功能扩展:指业务架构的扩展
    • 群集扩展:指节点扩展
      • 有状态扩展:有内存数据或数据库扩展,扩展难
      • 无状态扩展:无数据直接扩展非常容易(推荐)

    如果这篇文章对你有用,麻烦关注点赞收藏,或关注公众号“猿码”了解更多内容

    郑重声明:本文内容及图片均整理自互联网,不代表本站立场,版权归原作者所有,如有侵权请联系管理员(admin#wlmqw.com)删除。
    (0)
    用户投稿
    上一篇 2022年7月20日
    下一篇 2022年7月20日

    相关推荐

    联系我们

    联系邮箱:admin#wlmqw.com
    工作时间:周一至周五,10:30-18:30,节假日休息